Operating systems, when compared to application programs, have received disappointingly little benefit from the performance improvements of the most recent generation of microprocessors. This thesis used complete traces of software activity from a RISC-based uniprocessor to expose the dynamic behavior of operating system execution and explore the sources of poor performance. Traces from both Mach 3.0 and Ultrix implementations of UNIX permitted a study of performance differences between microkernel and monolithic implementations of the same operating system interface. The comparison showed that both system structure and policy implemented in the system have a significant impact on performance.
Measurements of X11 workloads showed that memory system behavior for these large workloads differs significantly from the kinds of workloads traditionally used for performance analysis. Structural and behavioral similarities between large X11 workloads and the operating system are reflected in their overall performance.
These experiments represent the first application of address tracing with software instrumentation to the study of behavior in a popular operating system. The development of the tools and their application in this research demonstrates that such methods are a powerful tool for understanding behavior and interactions in complex software systems. Overall, the experiments demonstrate that system level effects must be measured for a complete understanding of overall performance.