This research summary describes research conducted under the
Harvard University
Computer Science Department's
THE MEASURED PERFORMANCE OF
PERSONAL COMPUTER OPERATING SYSTEMS
J. Bradley Chen, Yasuhiro Endo, Kee Chan, David Mazieres, Antonio Dias,
Margo Seltzer, Michael D. Smith
August 1995
Abstract
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.
Resources available on-line
Excerpts from the paper
The Syscall Benchmark
This benchmark measures the time required to invoke a system call.
Windows for Workgroups implements some of the functionality in
32-bit code and some in 16-bit. We tested both.
Our results show that accessing 32-bit Windows system functionality
has the lowest overhead, while accessing 16-bit Windows system
functionality incurs overhead similar to that of Windows NT.
Overall, NetBSD allows more efficient access to the system
functionality than the other two systems. Read the paper
for detail.
Memory Access Time
We used the memory read microbenchmark from lmbench
(written by Larry McVoy) to measure average memory access time for
repeated references to arrays of various sizes, using a stride of
128bytes. The results are affected by
addressing schemes and page mapping policies.
Ghostscript
These figures illustrate activity during a run of the Ghostscript
previewer on a 13 page, 372K byte conference paper. Windows NT gains
significant performance benefit from its graphics implementation,
which makes efficient use of special features in the graphics
hardware. NetBSD suffers from the additional copies and
device-independent implementation of our X11 server.
Yasuhiro Endo /
yaz@eecs.harvard.edu