Scheduling and resource management techniques for multiprocessors

This thesis describes research in the design and implementation of multiprocessor resource management and related areas. Application requirements motivated the major research areas, processor scheduling and non-uniform memory management, as these areas contain the most important problems raised by the changing design and use of multiprocessors. A variety of processor scheduling problems are addressed by this work. A major contribution is the design and implementation of a processor allocation and control facility for the Mach operating system that allows processors to be dedicated to applications. The implementation of this facility has been validated by production use, and it is one of the first successful applications of policy-mechanism separation to multiprocessor scheduling (and, in particular, to the problem of dividing a multiprocessor among competing applications). The techniques of Discouragement and Handoff Scheduling are introduced to address the communication and synchronization problems of applications with more active entities than processors. Support for timesharing has been preserved by integrating the new features into the Mach timesharing scheduler. In the process, it was necessary to redesign the scheduler from scratch, and a number of lessons were learned about the design and implementation of timesharing schedulers, including how to collect accurate processor usage information based on timestamps instead of interrupt-driven sampling. The non-uniform memory management research takes a different approach, predicated on obtaining more information from hardware. Current implementations of non-uniform memory management are restricted by the available reference information. Hardware reference and modification bits indicate only that a page was referenced or modified at least once sometime in the past; they do not indicate how many references were made or how long ago. If more reference information were available, more sophisticated (and hopefully better) management techniques would be possible. This research assumes that any desired information about the access history of any region of memory is available and designs competitive replication and migration algorithms that can take advantage of this information. A case study examines how these algorithms could be incorporated into the Mach operating system.

[1]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[2]  Karsten Schwan,et al.  StarOS, a multiprocessor operating system for the support of task forces , 1979, SOSP '79.

[3]  Armando P. Stettner The design and implementation of the 4.3BSD UNIX operating system , 1988 .

[4]  William A. Wulf,et al.  HYDRA/C.Mmp, An Experimental Computer System , 1981 .

[5]  Paul A. Karger Using registers to optimize cross-domain call performance , 1989, ASPLOS III.

[6]  Andreas Nowatzyk,et al.  Coherent shared memory on a message passing machine , 1988 .

[7]  Larry Rudolph,et al.  Distributed hierarchical control for parallel processing , 1990, Computer.

[8]  Anna R. Karlin,et al.  Competitive randomized algorithms for non-uniform problems , 1990, SODA '90.

[9]  Lawrence J. Kenah,et al.  VAX/VMS internals and data structures , 1984 .

[10]  Jr. Avadis Tevanian Architecture independent virtual memory management for parallel and distributed environments: the mach approach , 1987 .

[11]  Leslie Lamport Concurrent reading and writing of clocks , 1990, TOCS.

[12]  Robert J. Fowler,et al.  The implementation of a coherent memory abstraction on a NUMA multiprocessor: experiences with platinum , 1989, SOSP '89.

[13]  Elliott I. Organick,et al.  The multics system: an examination of its structure , 1972 .

[14]  Michael L. Scott,et al.  Simple but effective techniques for NUMA memory management , 1989, SOSP '89.

[15]  Amos Fiat,et al.  Competitive Paging Algorithms , 1991, J. Algorithms.

[16]  Carla Schlatter Ellis,et al.  Experimental comparison of memory management policies for NUMA multiprocessors , 1991, TOCS.

[17]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[18]  Anoop Gupta,et al.  Competitive management of distributed shared memory , 1989, Digest of Papers. COMPCON Spring 89. Thirty-Fourth IEEE Computer Society International Conference: Intellectual Leverage.

[19]  James Wallace Wendorf Operating system/application concurrency in tightly-coupled multiple-processor systems , 1987 .

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

[21]  Lyle A. McGeoch,et al.  Competitive algorithms for on-line problems , 1988, STOC '88.

[22]  Manfred Ruschitzka,et al.  A unifying approach to scheduling , 1977, CACM.

[23]  Anoop Gupta,et al.  Process control and scheduling issues for multiprogrammed shared-memory multiprocessors , 1989, SOSP '89.

[24]  Mosur Ravishankar,et al.  PLUS: a distributed shared-memory system , 1990, ISCA '90.

[25]  Carl H. Hauser,et al.  The portable common runtime approach to interoperability , 1989, SOSP '89.

[26]  Mark A. Holliday,et al.  Reference history, page size, and migration daemons in local/remote architectures , 1989, ASPLOS III.

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

[28]  Anoop Gupta,et al.  Design of scalable shared-memory multiprocessors: the DASH approach , 1990, Digest of Papers Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage.

[29]  Hideyuki Tokuda,et al.  Implementation of a Time-Driven Scheduler for ReaI-Time Operating Systems , 1987, RTSS.

[30]  Andrew W. Wilson,et al.  Hierarchical cache/bus architecture for shared memory multiprocessors , 1987, ISCA '87.

[31]  Michel Dubois,et al.  Dynamic page migration in multiprocessors with distributed global memory , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[32]  Anoop Gupta,et al.  Analysis of cache invalidation patterns in multiprocessors , 1989, ASPLOS III.

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

[34]  Arthur J. Bernstein,et al.  A policy-driven scheduler for a time-sharing system , 1971, CACM.

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

[36]  A M Holliday On the Effectiveness of Dynamic Page Placement , 1989 .

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

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