The measured performance of personal computer operating systems

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, Windows NT, and NetBSD (a freely available variant of the UNIX operating system), 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 processor that permit measurement of a broad range of processor events including instruction counts and on-chip cache miss counts. 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 often more expensive in Windows for Workgroups 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 incurs overhead similar to that of a microkernel since its application interface (the Win32 API) is implemented as a user-level server. 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 hardware backwards compatibility requirements in the other systems. Measurements of application performance show that although the impact of these differences is significant in terms of instruction counts and other hardware events (often a factor of 2 to 7 difference between the systems), overall performance is sometimes determined by the functionality provided by specific subsystems, such as the graphics subsystem or the file system buffer cache.

[1]  Michael D. Smith,et al.  The measured performance of personal computer operating systems , 1996, TOCS.

[2]  Richard F. Rashid,et al.  DOS as a Mach 3.0 Application , 1991, USENIX MACH Symposium.

[3]  Brian N. Bershad,et al.  Avoiding conflict misses dynamically in large direct-mapped caches , 1994, ASPLOS VI.

[4]  George Eckel Inside Windows NT , 1993 .

[5]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[6]  Sailesh Chutani,et al.  The Episode File System , 1992 .

[7]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[8]  Andrew Schulman,et al.  Undocumented Windows : a programmer's guide to reserved Microsoft Windows API functions/ by Andrew Schulman, David Maxey, Matt Pietrek , 1992 .

[9]  Alessandro Forin,et al.  An MS-DOS file system for UNIX , 1994 .

[10]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[11]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[12]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[13]  Namir Clement Shammas Life after DOS , 1988 .

[14]  Brian N. Bershad,et al.  The impact of operating system structure on memory system performance , 1994, SOSP '93.

[15]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[16]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[17]  Richard E. Kessler,et al.  Page placement algorithms for large real-indexed caches , 1992, TOCS.

[18]  Helen Custer,et al.  Inside Windows NT , 1992 .

[19]  Trevor N. Mudge,et al.  Instruction fetching: Coping with code bloat , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[20]  Sara McMains,et al.  File System Logging versus Clustering: A Performance Comparison , 1995, USENIX.

[21]  Helen Custer,et al.  Inside the Windows NT File System , 1994 .