FLEX: A Tool for Building Efficient and Flexible Systems
John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote, Jeffrey Law,
Jay Lepreau, Douglas B. Orr, Leigh Stoller, and Mark Swanson
Department of Computer Science
University of Utah, Salt Lake City, UT 84112
Abstract
Modern operating systems must support a wide variety of services for a
diverse set of users. Designers of these systems face a tradeoff
between functionality and performance. Systems like Mach provide a
set of general abstractions and attempt to handle every situation,
which can lead to poor performance for common cases. Other systems,
such as Unix, provide a small set of abstractions that can be made
very efficient, at the expense of functionality. We are implementing
a flexible system building tool, FLEX, that allows us to support a
powerful operating systems interface efficiently by constructing
specialized module implementations at runtime. FLEX improves the
performance of existing systems by optimizing interprocess
communications paths and relocating servers and clients to reduce
communications overhead. These facilities improve the performance of
Unix system calls on Mach from 20-400%. Furthermore, FLEX can
dynamically extend the kernel in a controlled fashion, which gives
user programs access to privileged data and devices not envisioned by
the original operating system implementor.
Full paper appeared in Proceedings
of the 4th Workshop on Workstation Operating Systems.
spo@cs.utah.edu
Last modified on Tue Aug 8 1995.