The mechanics of in-kernel synchronization for a scalable microkernel

Systems with minimal kernels address the problem of ever-increasing system software complexity by strict separation of resource permission management and resource policies into different trust domains. Lately, such system structure has found wide attention in the research community and industry in the form of hypervisors and virtual machines. With an increasing number of processors, these systems face a scalability problem. The separation eliminates semantic information about the expected parallelism for individual resources, such as memory pages or processors. Hence, the kernel is unable to optimize its synchronization primitives on a case-by-case basis---a precondition for a scalable, yet well-performing system. In this paper we present an adaptive synchronization scheme, one of the core building block for scalable microkernels. Herewith, unprivileged components (like virtual machines) can express the degree of concurrency at the granularity of individual resources. The kernel can safely adapt and optimize its internal synchronization regime on a case-by-case basis as we show exemplary for inter-process communication and the memory management subsystem of an L4 microkernel.

[1]  Stefan Götz,et al.  Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines , 2004, OSDI.

[2]  Michael Stumm,et al.  Experiences with locking in a NUMA multiprocessor operating system kernel , 1994, OSDI '94.

[3]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[4]  J. Mark Bull,et al.  A microbenchmark suite for OpenMP 2.0 , 2001, CARN.

[5]  Mary K. Vernon,et al.  Efficient synchronization primitives for large-scale cache-coherent multiprocessors , 1989, ASPLOS III.

[6]  Paul E. McKenney,et al.  Selecting locking primitives for parallel programming , 1996, CACM.

[7]  Intel Corportation,et al.  IA-32 Intel Architecture Software Developers Manual , 2004 .

[8]  S. Lennart Johnsson,et al.  Distributed Routing Algorithms for Broadcasting and Personalized Communication in Hypercubes , 1986, ICPP.

[9]  Corporate IEEE Standard for Scalable Coherent Interface, Science: IEEE Std. 1596-1992 , 1993 .

[10]  河野 健二 20世紀の名著名論:M. Accetta R. Baron W. Bolosky D. Golub R. Rashid A. Tevanian and M. Young:Mach : A New Kernel Foundation For UNIX Development , 2006 .

[11]  Joshua LeVasseur,et al.  Towards Scalable Multiprocessor Virtual Machines , 2004, Virtual Machine Research and Technology Symposium.

[12]  Anoop Gupta,et al.  The Stanford Dash multiprocessor , 1992, Computer.

[13]  Michael Stumm,et al.  Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system , 1999, OSDI '99.

[14]  Beng-Hong Lim,et al.  Reactive synchronization algorithms for multiprocessors , 1994, ASPLOS VI.

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

[16]  Abraham Silberschatz,et al.  The Pebble Component-Based Operating System , 1999, USENIX Annual Technical Conference, General Track.

[17]  Paul E. McKenney,et al.  READ-COPY UPDATE: USING EXECUTION HISTORY TO SOLVE CONCURRENCY PROBLEMS , 2002 .

[18]  J. Liedtke On -Kernel Construction , 1995 .

[19]  R. Sailer,et al.  sHype : Secure Hypervisor Approach to Trusted Virtualized Systems , 2005 .

[20]  James R. Goodman,et al.  Speculative lock elision: enabling highly concurrent multithreaded execution , 2001, MICRO.

[21]  William A. Wulf,et al.  HYDRA , 1974, Commun. ACM.

[22]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[23]  Jonathan Appavoo,et al.  Clustered Objects , 2005 .

[24]  Stuart Ritchie,et al.  The Raven Kernel: a Microkernel for shared memory multiprocessors , 1993 .

[25]  Jonathan M. Smith,et al.  EROS: a fast capability system , 1999, SOSP.

[26]  H. Hartig,et al.  Flexible-sized page-objects , 1996, Proceedings of the Fifth International Workshop on Object-Orientation in Operation Systems.

[27]  Benjie Chen,et al.  Multiprocessing with the Exokernel Operating System , 2000 .

[28]  Michael L. Scott,et al.  Kernel-Kernel communication in a shared-memory multiprocessor , 1993, Concurr. Pract. Exp..

[29]  Ronald C. Unrau Scalable memory management through hierarchical symmetric multiprocessing , 1993 .

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

[31]  C. Alberini,et al.  Memory , 2006, Cellular and Molecular Life Sciences CMLS.

[32]  HeiserGernot,et al.  Are virtual-machine monitors microkernels done right? , 2006 .

[33]  Gernot Heiser,et al.  Are virtual-machine monitors microkernels done right? , 2006, OPSR.

[34]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[35]  Volkmar Uhlig,et al.  Scalability of microkernel-based systems , 2005 .

[36]  Charles E. Leiserson,et al.  Fat-trees: Universal networks for hardware-efficient supercomputing , 1985, IEEE Transactions on Computers.