SPIN—an extensible microkernel for application-specific operating system services

Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed interfaces and implementations to system services and resources. This makes them inappropriate for applications whose resource demands and usage patterns are poorly matched by the services provided. The SPIN operating system enables system services to be defined in an application-specific fashion through an extensible microkernel. It offers applications fine-grained control over a machine's logical and physical resources through run-time adaptation of the system to application requirements.

[1]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[2]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[3]  Özalp Babaoglu,et al.  Converting a swap-based system to do paging in an architecture lacking page-referenced bits , 1981, SOSP.

[4]  Michael Stonebraker,et al.  Operating system support for database management , 1981, CACM.

[5]  John K. Ousterhout,et al.  Scheduling Techniques for Concurrent Systems , 1982, ICDCS.

[6]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[7]  Butler W. Lampson,et al.  Hints for Computer System Design , 1983, IEEE Software.

[8]  Rob Pike,et al.  Hardware/software trade‐offs for bitmap graphics on the blit , 1985, Softw. Pract. Exp..

[9]  John Kunze,et al.  A trace-driven analysis of the unix 4 , 1985, SOSP 1985.

[10]  Paul J. Leach,et al.  An Extensible I/O System , 1986, USENIX Summer.

[11]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[12]  Jeffrey C. Mogul,et al.  The packer filter: an efficient mechanism for user-level network code , 1987, SOSP '87.

[13]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[14]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[15]  Henry M. Levy,et al.  The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors , 1989, IEEE Trans. Computers.

[16]  Samuel DeFazio,et al.  Diversity in database reference behavior , 1989, SIGMETRICS '89.

[17]  Calton Pu,et al.  Threads and input/output in the synthesis kernal , 1989, SOSP '89.

[18]  Michael Wayne Young Exporting a user interface to memory management from a communication-oriented operating system , 1989 .

[19]  Robin Milner,et al.  Definition of standard ML , 1990 .

[20]  John Zahorjan,et al.  Processor scheduling in shared memory multiprocessors , 1990, SIGMETRICS '90.

[21]  Dylan McNamee,et al.  Extending the Mach External Pager Interface to Accomodate User-Level Page Replacement Policies , 1990, USENIX MACH Symposium.

[22]  David L. Black,et al.  Scheduling and resource management techniques for multiprocessors , 1990 .

[23]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1990 .

[24]  Alessandro Forin,et al.  UNIX as an Application Program , 1990, USENIX Summer.

[25]  Charles Consel,et al.  Binding time analysis for high order untyped functional languages , 1990, LISP and Functional Programming.

[26]  Monica S. Lam,et al.  The cache performance and optimizations of blocked algorithms , 1991, ASPLOS IV.

[27]  Brian N. Bershad,et al.  Using continuations to implement thread management and communication in operating systems , 1991, SOSP '91.

[28]  Mario Tokoro,et al.  Reflective object management in the Muse operating system , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[29]  Brian N. Bershad,et al.  User-level interprocess communication for shared memory multiprocessors , 1991, TOCS.

[30]  Craig Chambers,et al.  Making pure object-oriented languages practical , 1991, OOPSLA 1991.

[31]  Yoonho Park,et al.  User-Level Physical Memory Management for Mach , 1991, USENIX MACH Symposium.

[32]  Erik Ruf,et al.  Automatic Online Partial Evaluation , 1991, FPCA.

[33]  Paulo Guedes,et al.  Generalized Emulation Services for Mach 3.0: Overview, Experiences and Current Status , 1991, USENIX MACH Symposium.

[34]  D. Culler,et al.  Active Messages: A Mechanism for Integrated Communication and Computation , 1992, [1992] Proceedings the 19th Annual International Symposium on Computer Architecture.

[35]  Chris Maeda,et al.  Networking performance for microkernels , 1992, [1992] Proceedings Third Workshop on Workstation Operating Systems.

[36]  Jun Nakajima,et al.  Multimedia/Realtime Extensions for Mach 3.0 , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[37]  Brian N. Bershad,et al.  Consistency management for virtually indexed caches , 1992, ASPLOS V.

[38]  Dan Hildebrand,et al.  An Architectural Overview of QNX , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[39]  Mahadev Satyanarayanan,et al.  Disk reads with DRAM latency , 1992, [1992] Proceedings Third Workshop on Workstation Operating Systems.

[40]  David R. Cheriton,et al.  Application-controlled physical memory using external page-cache management , 1992, ASPLOS V.

[41]  Brian N. Bershad,et al.  Fast mutual exclusion for uniprocessors , 1992, ASPLOS V.

[42]  Edward W. Felten,et al.  Performance issues in non-blocking synchronization on shared-memory multiprocessors , 1992, PODC '92.

[43]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.

[44]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[45]  Daniel G. Bobrow,et al.  The art of the Metaobject Protocol , 1991, IEEE Expert.

[46]  Antony L. Hosking,et al.  Protection traps and alternatives for memory management of an object-oriented language , 1994, SOSP '93.

[47]  Brian N. Bershad,et al.  The impact of operating system structure on memory system performance , 1994, SOSP '93.

[48]  Michael N. Nelson,et al.  An Implementation of UNIX on an Object-oriented Operating System , 1993, USENIX Winter.

[49]  Brian N. Bershad,et al.  Protocol service decomposition for high-performance networking , 1994, SOSP '93.

[50]  David P. Anderson,et al.  Metascheduling for continuous media , 1993, TOCS.

[51]  Marvin Theimer,et al.  Using threads in interactive systems: a case study , 1993, SOSP '93.

[52]  James M. Phelan,et al.  An OS/2 Personality on Mach , 1993, USENIX MACH Symposium.

[53]  Brian N. Bershad,et al.  Practical considerations for non-blocking concurrent objects , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[54]  Thu D. Nguyen,et al.  Implementing network protocols at user level , 1993, TNET.

[55]  Brian N. Bershad,et al.  Efficient Packet Demultiplexing for Multiple Endpoints and Large Messages , 1994, USENIX Winter.