Clustered Objects

In this dissertation we establish that the use of distribution in the implementation of a shared memory multi-processor operating system is both feasible and able to substantially improve performance of core operating system services. Specifically we apply distribution in the form of replication and partitioning in the construction of K42, a shared memory multi-processor operating system. Clustered Objects, a software construction for the systematic and selective application of distribution to objects of K42's object oriented system layer, is presented. A study of the virtual memory services of K42 is conducted in which distribution is applied to key virtual memory objects to enable performance improvements. The distributed versions of these objects substantially improve scalability, and specifically improve throughput of a standard multiuser benchmark by 68% on a 24 way multi-processor. Additionally, a methodology for the dynamic hot-swapping of Clustered Object instances is presented as a means for enabling dynamic adaptation. Motivated by the desire to hot-swap between centralized and distributed implementations of Clustered Objects, the methodology presented is correct, efficient and integrated with the Clustered Object support.

[1]  Anoop Gupta,et al.  Hive: fault containment for shared-memory multiprocessors , 1995, SOSP.

[2]  Josh Cates,et al.  Robust and efficient data management for a distributed hash table , 2003 .

[3]  Abraham Silberschatz,et al.  Operating Systems Concepts , 2005 .

[4]  Henry Massalin,et al.  Synthesis: an efficient implementation of fundamental operating system services , 1992 .

[5]  Willy Zwaenepoel,et al.  The distributed V kernel and its performance for diskless workstations , 1983, SOSP '83.

[6]  Michael L. Scott,et al.  Evolution of an Operating System for Large-Scale Shared-Memory Multiprocessors , 1989 .

[7]  Larry Rudolph,et al.  Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential Processors , 1983, TOPL.

[8]  Anoop Gupta,et al.  The impact of architectural trends on operating system performance , 1995, SOSP.

[9]  D. Lenoski,et al.  The SGI Origin: A ccnuma Highly Scalable Server , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[10]  David R. Kohr,et al.  A performance study of an object-oriented, parallel operating system , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[11]  Amnon Barak,et al.  MOSIX: an integrated multiprocessor UNIX , 1999 .

[12]  Liana L. Fong,et al.  Performance analysis on a CC-NUMA prototype , 1997, IBM J. Res. Dev..

[13]  Amnon Barak,et al.  The MOSIX multicomputer operating system for high performance cluster computing , 1998, Future Gener. Comput. Syst..

[14]  Michael Stumm,et al.  A Fair Fast Scalable Rea,der-Writer Lock , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[15]  Bryan S. Rosenburg,et al.  Experience porting Mach to the RP3 large-scale shared-memory multiprocessor , 1992, Future Gener. Comput. Syst..

[16]  Evangelos P. Markatos,et al.  Implementation Issues for the Psyche Multiprocessor Operating System , 1989, Comput. Syst..

[17]  Guy Lemieux,et al.  The NUMAchine multiprocessor , 2000, Proceedings 2000 International Conference on Parallel Processing.

[18]  Srinivasan Parthasarathy,et al.  Cashmere-2L: software coherent shared memory on a clustered remote-write network , 1997, SOSP.

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

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

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

[22]  Henri E. Bal,et al.  A Distributed Implementation of the Shared Data-object Model , 1989 .

[23]  David E. Culler,et al.  Scalable, distributed data structures for internet service construction , 2000, OSDI.

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

[25]  William A. Wulf,et al.  Overview of the Hydra Operating System development , 1975, SOSP.

[26]  Karsten Schwan,et al.  Distributed shared abstractions (DSA) on large-scale multiprocessors , 1993 .

[27]  William A. Wulf,et al.  Policy/mechanism separation in Hydra , 1975, SOSP.

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

[29]  Richard F. Rashid,et al.  Mach and Matchmaker: kernel and language support for object-oriented distributed systems , 1986, OOPSLA 1986.

[30]  Anoop Gupta,et al.  The Stanford FLASH Multiprocessor , 1994, ISCA.

[31]  Michael Stumm,et al.  Position Summary: Supporting Hot-Swappable Components for System Software , 2002 .

[32]  Karsten Schwan,et al.  “Topologies”—distributed objects on multicomputers , 1990, TOCS.

[33]  Jon Louis Bentley,et al.  Programming pearls , 1987, CACM.

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

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

[36]  Paul R. McJones,et al.  Evolving the UNIX System Interface to Support Multithreaded Programs , 1997 .

[37]  Roy H. Campbell,et al.  Designing and implementing Choices: an object-oriented system in C++ , 1993, CACM.

[38]  Curt Schimmel UNIX systems for modern architectures - symmetric multiprocessing and caching for Kernel programmers , 1994, Addison-Wesley professional computing series.

[39]  Uresh K. Vahalia UNIX Internals: The New Frontiers , 1995 .

[40]  John K. Ousterhout,et al.  Medusa: An experiment in distributed operating system structure (Summary) , 1979, SOSP '79.

[41]  Ann Marie Grizzaffi Maynard,et al.  Contrasting characteristics and cache performance of technical and multi-user commercial workloads , 1994, ASPLOS VI.

[42]  Anoop Gupta,et al.  Operating system support for improving data locality on CC-NUMA compute servers , 1996, ASPLOS VII.

[43]  Scott Devine,et al.  Disco: running commodity operating systems on scalable multiprocessors , 1997, TOCS.

[44]  Jonathan Appavoo,et al.  Clustered Objects: Initial Design, Implementation and Evaluation , 1998 .

[45]  Raymond M. Bryant,et al.  Operating system support for parallel programming on RP3 , 1991, IBM J. Res. Dev..

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

[47]  Michael L. Scott,et al.  Design Rationale for Psyche a General-Purpose Multiprocessor Operating System , 1988, ICPP.

[48]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[49]  Raj Vaswani,et al.  The implications of cache affinity on processor scheduling for multiprogrammed, shared memory multiprocessors , 1991, SOSP '91.

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

[51]  Brian W. Kernighan,et al.  The Practice of Programming , 1999 .

[52]  John Slice,et al.  The Parallelization of UNIX System V Release 4.0 , 1991, USENIX Winter.

[53]  Michael Stumm,et al.  (De-)clustering objects for multiprocessor system software , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[54]  Anoop Gupta,et al.  The impact of operating system scheduling policies and synchronization methods of performance of parallel applications , 1991, SIGMETRICS '91.

[55]  THOMAS J. LEBLANC,et al.  The Elmwood multiprocessor operating system , 1989, Softw. Pract. Exp..

[56]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

[57]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[58]  J. Kent Peacock,et al.  Experiences from multithreading System V Release 4 , 1992 .

[59]  Evangelos P. Markatos,et al.  Using processor affinity in loop scheduling on shared-memory multiprocessors , 1992, Supercomputing '92.

[60]  Karsten Schwan,et al.  CHAOSarc: kernel support for multiweight objects, invocations, and atomicity in real-time multiprocessor applications , 1993, TOCS.

[61]  Andrew A. Chien,et al.  Concurrent aggregates (CA) , 1990, PPOPP '90.

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

[63]  Amnon Barak,et al.  Design Principles of Operating Systems for Large Scale Multicomputers , 1987, Experiences with Distributed Systems.

[64]  Paul R. McJones The Topaz System: Distributed Multiprocessor Personal Computing , 1997 .

[65]  Josep Torrellas,et al.  Characterizing the caching and synchronization performance of a multiprocessor operating system , 1992, ASPLOS V.

[66]  David L. Black,et al.  Locking and Reference Counting in the Mach Kernel , 1991, ICPP.

[67]  John H. Hartman,et al.  Performance Measurements of a Multiprocessor Sprite Kernel , 1990, USENIX Summer.

[68]  Dilma Da Silva,et al.  An infrastructure for multiprocessor run-time adaptation , 2002, WOSS '02.

[69]  Mark S. Squillante,et al.  Using Processor-Cache Affinity Information in Shared-Memory Multiprocessor Scheduling , 1993, IEEE Trans. Parallel Distributed Syst..

[70]  Carla Schlatter Ellis,et al.  Extendible hashing for concurrent operations and distributed data , 1983, PODS '83.

[71]  Drew McCrocklin Scaling Solaris for Enterprise Computing , 1997 .

[72]  Mesaac Makpangou,et al.  Fragmented Objects for Distributed Abstractions , 1994 .

[73]  David Jefferson,et al.  Protection in the Hydra Operating System , 1975, SOSP.

[74]  Burton J. Smith The quest for general-purpose parallel computing , 1994 .

[75]  Babak Falsafi,et al.  Kernel Support for the Wisconsin Wind Tunnel , 1993, USENIX Microkernels and Other Kernel Architectures Symposium.

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

[77]  Christian Clémençon,et al.  Distributed Shared Abstractions (DSA) on Multiprocessor , 1996, IEEE Trans. Software Eng..

[78]  Jacques Talbot Turning the AIX Operating System into an MP-capable OS , 1995, USENIX.

[79]  Michael L. Scott,et al.  Multi-model parallel programming in psyche , 1990, PPOPP '90.

[80]  Stamatis Vassiliadis,et al.  Parallel Computer Architecture , 2000, Euro-Par.

[81]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[82]  Paul E. McKenney Using RCU in the Linux 2.5 Kernel , 2003 .

[83]  James A. Woodward,et al.  DEC OSF/1 Version 3.0 Symmetric Multiprocessing Implementation , 1994, Digit. Tech. J..

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

[85]  David R. Karger,et al.  Building peer-to-peer systems with chord, a distributed lookup service , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[86]  Carla Schlatter Ellis,et al.  Page Placement Policies for NUMA Multiprocessors , 1991, J. Parallel Distributed Comput..

[87]  Anoop Gupta,et al.  Memory system performance of UNIX on CC-NUMA multiprocessors , 1995, SIGMETRICS '95/PERFORMANCE '95.

[88]  David R. Cheriton,et al.  A caching model of operating system kernel functionality , 1994, OSDI '94.

[89]  Richard F. Rashid From RIG to Accent to Mach: An Evolution of a Network Operating System , 1986, FJCC.

[90]  J. Kent Peacock File System Multithreading in System V Release 4 MP , 1992, USENIX Summer.

[91]  Kevin Hui,et al.  Design and implementation of K42's dynamic clustered object switching mechanism , 2000 .

[92]  Karsten Schwan,et al.  Improving performance by use of adaptive objects: experimentation with a configurable multiprocessor thread package , 1993, [1993] Proceedings The 2nd International Symposium on High Performance Distributed Computing.

[93]  Brian N. Bershad,et al.  An Open Environment for Building Parallel Programming Systems , 1988, PPOPP/PPEALS.

[94]  Michael Stumm,et al.  Hierarchical clustering: A structure for scalable multiprocessor operating system design , 1995, The Journal of Supercomputing.