OS and Systems Software

An operating system (OS) maps a model of computation, defined by its kernel interface, into the underlying hardware. In a previous project Synthesis, techniques including dynamic code generation and software feedback were used in the implementation of an operating system. For example, frequently executed kernel calls are custom-made at run-time using compiler code optimization ideas such as constant folding and macro expansion. Another example is fine-grain scheduling, which uses feedbacks implemented in software to adjust system resource management policies, self-tuning the kernel to load changes. It has been demonstrated that several to several dozen times speedup for UNIX kernel calls has been achieved by applying these optimization techniques in Synthesis.

Based on the experience with the Synthesis kernel, Dr. Pu has been working with Jonathan Walpole, Charles Consel, Andrew Black, Crispin Cowan, Dylan McNamee, David Maier, and David Steere on the development of next-generation software in the following projects.

We are looking for good people to join our project and work with us. We would like to hear from you, if you are interested in a postdoc, research programmer, or graduate student assistant positions. See our job ad for more information. Our project is also closely related to the Aspect-Oriented Programming project at Xerox PARC . Specialization of OS modules can be seen as a way to build reflective modules for an encapsulated OS interface.

DARPA PI meeting talk on the Synthetix project: slides.

HOMEPAGE Back to Calton Pu's home page