|
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 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 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 backwards compatibility 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.
|