The Impact of Operating System Structure on Memory System Performance (Chen and Bershad, 1993) On the surface, this paper could be summed up in two sentences: 1) Microkernels just are not are hip as they are cracked up to be and 2) Almost all of those assumptions we have had about memory performance over the years are, in fact, true. Proving, or at least providing good evidence about commonly believed assumptions is very useful -- and even more so is showing that some of them are insignificant, which is what the authors do. But I find their comparison of Mach and Ultrix spurious. Ultrix is designed and tuned for the hardware on which the experiment is run; in fact, it runs on very few other systems. Mach, on the other hand, is highly portable, and, because it is a microkernel, can run a huge array of other programs well, not just Unix. In our reading group, we agreed that we would have been very surprised if Mach had beaten Ultrix on its home ground. The comparison does confirm, however, that as we approach the specialized axis on our graph of OS generality, that performance does improve. We found the tests themselves and the assuptions they supported interesting, especially the idea that system code has poorer localization that user code, resulting in more cache misses. Their main benchmark, MCPI (memory cycles per instruction) seemed an appropriate benchmark over the usual CPI (cycles per instruction). Relatedly, their methods for accounting memory and temporal distortion by simulating the cache and slowing down the clock appear reasonable. That they ran their tests in single user mode probably benefitted Mach, because in mulit-user mode, Ultrix could have found a use for all of the idle instructions it had compared with Mach.