Dynamic Binding for an Extensible System
Przemyslaw Pardyak & Brian N. Bershad
Department of Computer Science and Engineering,University of Washington
E-mail: {pardy,bershad}@cs.washington.edu
In the Proceedings of the
Second USENIX Symposium on Operating Systems Design and Implementation
(OSDI), 1996.
Abstract
An extensible system requires a means to dynamically bind extensions
into executing code. SPIN extensible operating system uses an
event-based invocation mechanism to provide this functionality in a
flexible, transparent, safe, and efficient way. Events offer a
uniform model of extensibility, whereby the system's configuration can
change without changing any of its components. Events are defined
with the granularity and syntax of procedures but provide extended
procedure call semantics such as conditional execution, multicast, and
asynchrony. By installing a handler on an event, an extension's code
can execute in response to activities at the granularity of procedure
call. Our system uses runtime code generation to ensure that event
delivery has low overhead and scales well with the number of handlers.
This paper describes the design, use and performance of events in the
SPIN operating system.