usenix conference policies
In-Kernel Servers on Mach 3.0: Implementation and Performance
Jay Lepreau, Mike Hibler, Bryan Ford, Jeffrey Law, and Douglas Orr, University of Utah
The advantages in modularity and power of microkernel-based operating systems such as Mach 3.0 are well known. The existing performance problems of these systems, however, are signicant. Much of the performance degradation is due to the cost of maintaining separate protection domains, traversing software layers, and using a semantically rich inter-process communication mechanism. An approach that optimizes the common case is to permit merging of protection domains in performance critical applications, while maintaining protection boundaries for debugging or in situations that demand robustness. In our system, client calls to the server are effectively bound either to a simple system call interface, or to a full RPC mechanism, depending on the server's location. The optimization reduces argument copies, as well as work done in the control path to handle complex and infrequently encountered message types. In this paper we present a general method of doing this for Mach 3.0 and the results of applying it to the Mach microkernel and the OSF/1 single server. We describe the necessary modifications to the kernel, the single server, and the RPC stub generator. Semantic equivalence, backwards compatibility, and common source and binary code are preserved. Performance on micro and macro benchmarks is reported, with RPC performance improving by a factor of three, Unix system calls to the server improving between 20% and a factor of two, and 4-13%performance gain on large benchmarks. A breakdown of the times on the RPC path is also presented.
author = {Jay Lepreau and Mike Hibler and Bryan Ford and Jeffrey Law and Douglas Orr},
title = {{In-Kernel} Servers on Mach 3.0: Implementation and Performance},
booktitle = {USENIX Mach III Symposium (USENIX Mach III Symposium)},
year = {1993},
address = {Santa Fe, NM},
url = {https://www.usenix.org/conference/usenix-mach-iii-symposium/kernel-servers-mach-30-implementation-and-performance},
publisher = {USENIX Association},
month = apr
}
connect with us