Program Specialization Using the OMOS System
Douglas B. Orr Jay Lepreau Jeffrey Law
University of Utah
Technical Report UUCS-95-016
March, 1995
Abstract
Abstraction and modularity provide many software engineering benefits.
Hiding details of module internals can, however, prevent system
implementors from being able to provide anything but a highly general
implementation of a given module. We describe OMOS, a programmable
linker/loader and system server that manages module implementations.
OMOS allows system
builders to describe system architectures in high-level terms, via a
module construction scripting language. Using scripts,
system implementors can provide modules that can test and react to
both their static and run time environments. These modules,
which we refer to as electric libraries,
can produce implementations that are optimized at
link or run time, without sacrificing modularity, expanding
interfaces, or requiring changes in client programs. We identify
and implement three types of specializations that OMOS can
perform, and quantify the impact of two of them on a few standard
Unix utilities: performance improvements ranged from 6% to 47%.
The 17 page full paper is also available.