Bryan Ford, Mike Hibler, Jay Lepreau, Roland McGrath, and Patrick Tullmann
flux@cs.utah.edu
January 1999
The Flux Research Group
Department of Computer Science
University of Utah
50 S. Central Campus Drive Rm. 3190
Salt Lake City, Utah 84112-9205
Since all kernel operations appear atomic, services such as transparent checkpointing and process migration that need access to the complete and consistent state of a process can be implemented by ordinary user-mode processes. Atomic operations also enable applications to provide reliability in a more straightforward manner.
This API also allows us to explore novel kernel implementation techniques and to evaluate existing techniques. The Fluke kernel's single source implements either the ``process'' or the ``interrupt'' execution model on both uniprocessors and multiprocessors, depending on a configuration option affecting a small amount of code.
We report preliminary measurements comparing fully, partially and non-preemptible configurations of both process and interrupt model implementations. We find that the interrupt model has a modest performance advantage in some benchmarks, maximum preemption latency varies nearly three orders of magnitude, average preemption latency varies by a factor of six, and memory use favors the interrupt model as expected, but not by a large amount. We find that the overhead for restarting the most costly kernel operation ranges from 2-8% of the cost of the operation.
Full paper, available in HTML format or compressed Postscript, appears in Proc. of the Third Symposium on Operating Systems Design and Implementation (OSDI'99), February 1999.