Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

Interface and Execution Models in the Fluke Kernel

We have defined and implemented a kernel API that makes every exported operation fully interruptible and restartable, thereby appearing atomic to the user. To achieve interruptibility, all possible kernel states in which a thread may become blocked for a "long" time are represented as kernel system calls, without requiring the kernel to retain any unexposable internal state.

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.

Bryan Ford, University of Utah

Mike Hibler, University of Utah

Jay Lepreau, University of Utahv

Roland McGrath, University of Utah

Patrick Tullmann, University of Utah

BibTeX
@inproceedings {271781,
author = {Bryan Ford and Mike Hibler and Jay Lepreau and Roland McGrath and Patrick Tullmann},
title = {Interface and Execution Models in the Fluke Kernel},
booktitle = {3rd Symposium on Operating Systems Design and Implementation (OSDI 99)},
year = {1999},
address = {New Orleans, LA},
url = {https://www.usenix.org/conference/osdi-99/interface-and-execution-models-fluke-kernel},
publisher = {USENIX Association},
month = feb
}
Download

Links

Paper: 
http://usenix.org/publications/library/proceedings/osdi99/full_papers/lepreau/lepreau.pdf
Paper (HTML): 
http://usenix.org/publications/library/proceedings/osdi99/full_papers/lepreau/lepreau_html/lepreau.html
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us