USENIX 2nd Symposium on
OS Design and Implementation (OSDI '96)
Dynamic Binding for an Extensible System
Przemyslaw Pardyak and
Brian Bershad
Univeristy of Washington
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.
|