(De-)clustering objects for multiprocessor system software

Designing system software for large scale shared memory multiprocessors is challenging because of the level of performance demanded by the application workload and the distributed nature of the system. Adopting an object oriented approach for our system, we have developed a framework for de clustering objects, where each object may migrate, replicate, and distribute all or part of its data across the system memory using the policies that will best meet the locality requirements for that data. The mechanism for object invocation hides the internal structure of an object, allowing a request to be made directly to the most suitable part of the object on a per processor basis without any knowledge of how the object is de clustered. Method invocation is very efficient, both within and across address spaces, involving no remote memory accesses in the common case. We describe the design and implementation of this framework in Tornado, our multiprocessor operating system.<<ETX>>

[1]  Michael Stumm,et al.  Optimizing IPC Performance for Shared-Memory Multiprocessors , 1994, 1994 International Conference on Parallel Processing Vol. 1.

[2]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[3]  Graham Hamilton,et al.  The Spring Nucleus: A Microkemel for Objects , 1993, USENIX Summer.

[4]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA '92.

[5]  John Rosenberg,et al.  Grasshopper: An Orthogonally Persistent Operating System , 1994, Comput. Syst..

[6]  Daniel P. Julin,et al.  Client-Server Interactions in Multi-Server Operating Systems: The Mach-US Approach , 1994 .

[7]  Thomas E. Anderson,et al.  The performance implications of thread management alternatives for shared-memory multiprocessors , 1989, SIGMETRICS '89.

[8]  Peter Druschel,et al.  Efficient support for incremental customization of OS services , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.

[9]  Michael Stumm,et al.  Hector: a hierarchically structured shared-memory multiprocessor , 1991, Computer.

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

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

[12]  Anant Agarwal,et al.  LimitLESS directories: A scalable cache coherence scheme , 1991, ASPLOS IV.

[13]  Graham Hamilton,et al.  The Spring Nucleus: A Microkernel for Objects , 1993 .

[14]  Paul E. McKenney,et al.  Efficient Kernel Memory Allocation on Shared-Memory Multiprocessors , 1993, USENIX Winter.

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

[16]  James G. Mitchell,et al.  Subcontract: a flexible base for distributed programming , 1994, SOSP '93.

[17]  J. Rothnie,et al.  The KSR 1: bridging the gap between shared memory and MPPs , 1993, Digest of Papers. Compcon Spring.