The Impact of Operating System Structure
on Personal Computer Performance
This paper presents a comparative study of the performance of three operating systems that run on the personal computer architecture derived from the IBM-PC. The operating systems, Windows for Workgroups (tm), Windows NT (tm), and NetBSD (a freely available UNIX (tm) variant) cover a broad range of system functionality and user requirements, from a single address space model to full protection with preemptive multi-tasking. Our measurements were enabled by hardware counters in Intel’s Pentium (tm) processor that permit measurement of a broad range of processor events including instruction counts and on-chip cache miss rates. We used both microbenchmarks, which expose specific differences between the systems, and application workloads, which provide an indication of expected end-to-end performance. Our microbenchmark results show that accessing system functionality is more expensive in Windows than in the other two systems due to frequent changes in machine mode and the use of system call hooks. When running native applications, Windows NT is more efficient than Windows, but it does incur overhead from its microkernel structure. Overall, system functionality can be accessed most efficiently in NetBSD; we attribute this to its monolithic structure, and to the absence of the complications created by backwards compatibility in the other sys- tems. Measurements of application performance show that the impact of these differences is significant in terms of overall execution time. 1. Introduction
While most current operating systems research takes place using a variant of UNIX, the vast majority of main- stream computing occurs on personal computer (PC) systems (those derived from the IBM-PC architecture) running Microsoft Windows. The differences between the OS platforms used in research and mainstream OS products makes some systems research irrelevant with respect to the current needs of the software industry. At the same time, researchers ignore important problems in non-UNIX systems. The most common operating system used on PC platforms is Microsoft Windows. Windows lacks many fea- tures the OS research community consider mandatory, most notably preemptive multitasking and protected address spaces. New operating systems for the PC market like Windows NT and OS/2(tm) incorporate the timesharing sup- port found in modern UNIX systems while also supporting the Windows operating system interface. Though the operating systems community is familiar with the benefits of features such as separate protected address spaces, we don’t know that much about systems without them. Our goal is to address this shortcoming by illuminating the impor- tant differences between UNIX and commodity systems and measuring their impact on application performance. As a first step towards understanding this issue, we present a quantitative comparison of three operating systems all of which run on the same PC hardware: Microsoft Windows for Workgroups(tm); NetBSD, a freely distributed version of UNIX; and Microsoft Windows NT (tm), a system which combines support for Windows applications with operating system features found in UNIX systems. There are important similarities in how the systems are used. All are used in personal (i.e. single-user) computing. All are used to load multiple applications into memory and switch between them. All are used with an interactive, window-based interface. These similarities give us a basis for com- parison. This is an extended version of a paper to appear in the 15th ACM Symposium on Operating System Principles. This paper is also available from the Center for Research in Computing Technology, Division of Applied Sciences, Harvard University as technical report TR-09-95. 1
Although the three systems support personal computing, they use...