CSE221 Spin and Exokernel

Andreas Anagnostatos (aanagnos@cs.ucsd.edu)
Tue, 06 Jun 2000 00:26:48 -0700

Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer,
Marc E. Fiuczynski, David Becker, Craig Chambers, and Susan Eggers.
"Extensibility, Safety, and Performance in the SPIN Operating System,"
Proceedings of the 15th ACM Symposium on Operating Systems Principles,
Dec. 1995.

SPIN is an extensible operating system and provides facilities for
applications to modify basic operating system services such as the
virtual memory manager or scheduling, in order to optimize for specific
tasks. The kernel and the extensions run in the same address space to
lower communication costs and are both written in Modula-3, a type-safe
language, to protect the kernel from the extensions. Several extensions
were built, such as a UNIX operating system server and a client/server
video system, and from the performance measurements we see that the fine
tuning of the operating system for specific applications results in much
higher performance.

Although extensions must be built in Modula-3 which protects the kernel
from faulty extensions at compile time, it seems that the programmer
must have a lot of programming experience and be very careful in
implementing extensions to avoid compromising the system, which
increases implementation cost. Also some modern operating systems
provide some degree of tuning the OS services. For example in Windows
2000 Server one can choose to optimize the system either for
applications or for background services.

Dawson R. Engler, M. Frans Kaashoek, and James O'Toole, Jr., "Exokernel:
An Operating System Architecture for Application-Level Resource
Management," Proceedings of the 15th ACM Symposium on Operating Systems
Principles, Dec. 1995, pp. 251-266.