A caching model of operating system kernel functionality

Operating system research has endeavored to develop micro-kernels that provide modularity, reliability and security improvements over conventional monolithic kernels. However, the resulting kernels have been slower, larger and more error-prone than desired. These efforts have also failed to provide sufficient application control of resource management required by sophisticated applications. This paper describes a caching model of operating system functionality as implemented in the Cache Kernel, the supervisor-mode component of the V++ operating system. The Cache Kernel caches operating system objects such as threads and address spaces just as conventional hardware caches memory data. User-mode application kernels handle the loading and writeback of these objects, implementing application-specific management policies and mechanisms. Experience with implementing the Cache Kernel and measurements of its performance on a multiprocessor suggest that the caching model can provide competitive performance with conventional monolithic operating systems, yet provides application-level control of system resources, better modularity, better scalability, smaller size and a basis for fault containment.

[1]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[2]  David L. Black,et al.  The duality of memory and communication in the implementation of a multiprocessor operating system , 1987, SOSP '87.

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

[4]  Norman P. Jouppi,et al.  A simulation based study of TLB performance , 1992, ISCA '92.

[5]  Jonathan S. Shapiro,et al.  The KeyKOS Nanokernel Architecture , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[6]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1989, TOCS.

[7]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, ASPLOS 1987.

[8]  Amin Vahdat,et al.  Tools for the development of application-specific virtual memory management , 1993, OOPSLA '93.

[9]  Emin Gün Sirer,et al.  SPIN: an extensible microkernel for application-specific operating system services , 1994, EW 6.

[10]  David R. Cheriton,et al.  A caching model of operating system kernel functionality , 1995, OPSR.

[11]  Robert A. Kutter Optimizing memory-based messaging for scalable shared memory multiprocessor architectures , 1993 .

[12]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

[13]  Hendrik A. Goosen,et al.  Paradigm: a highly scalable shared-memory multicomputer architecture , 1991, Computer.

[14]  David L. Black,et al.  Translation lookaside buffer consistency: a software approach , 1989, ASPLOS 1989.

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

[16]  David R. Cheriton,et al.  Binary Emulation of UNIX Using the V Kernel , 1990, USENIX Summer.

[17]  Dawson R. Engler,et al.  The operating system kernel as a secure programmable machine , 1994, OPSR.

[18]  Chorus Systemes,et al.  Overview of the CHORUS? Distributed Operating Systems , 1991 .

[19]  Jerome H. Saltzer,et al.  The Multics kernel design project , 1977, SOSP '77.

[20]  Rudolf Ruland,et al.  Two years of experience with a μ-Kernel based OS , 1991, OPSR.

[21]  Claude Kaiser,et al.  Overview of the CHORUS ® Distributed Operating Systems , 1991 .

[22]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.