Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures

This paper describes the design and implementation of virtual memory management within the CMU Mach Operating System and the experiences gained by the Mach kernel group in porting that system to a variety of architectures. As of this writing, Mach runs on more than half a dozen uniprocessors and multiprocessors including the VAX family of uniprocessors and multiprocessors, the IBM RT PC, the SUN 3, the Encore MultiMax, the Sequent Balance 21000 and several experimental computers. Although these systems vary considerably in the kind of hardware support for memory management they provide, the machine-dependent portion of Mach virtual memory consists of a single code module and its related header file. This separation of software memory management from hardware support has been accomplished without sacrificing system performance. In addition to improving portability, it makes possible a relatively unbiased examination of the pros and cons of various hardware memory management schemes, especially as they apply to the support of multiprocessors.

[1]  David L. Black,et al.  The mach exception handling facility , 1988, PADD '88.

[2]  William J. Bolosky,et al.  A UNIX Interface for Shared Memory and Memory Mapped Files Under Mach , 1987, USENIX Summer.

[3]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

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

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

[6]  R. Bisiani,et al.  A distributed system architecture for speech recognition , 1986, ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing.

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

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

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

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

[11]  Chris Rowen,et al.  A CMOS RISC Processor with Integrated System Functions , 1986, COMPCON.

[12]  Andrew P. Black,et al.  Exception handling : The case against , 1982 .

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

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

[15]  Paul J. Leach,et al.  The Architecture of an Integrated Local Network , 1983, IEEE J. Sel. Areas Commun..

[16]  Henry M. Levy,et al.  Computer Programming and Architecture: The VAX-11 , 1980 .

[17]  Alfred Z. Spector,et al.  Support for Distributed Transactions in the TABS Prototype , 1985, IEEE Transactions on Software Engineering.

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

[19]  Alessandro Forin,et al.  Architectural support for multilanguage parallel programming on heterogeneous systems , 1987, ASPLOS.

[20]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.

[21]  Richard F. Rashid,et al.  The Integration of Virtual Memory Management and Interprocess Communication in Accent , 1986, ACM Trans. Comput. Syst..