The DASH Virtual Memory System

The DASH project has defined the network communication architecture for a large, high-performance distributed system. We are now designing a portable operating system kernel for the nodes of this system. The kernel is designed to run on shared-memory multiprocessors, and to exploit the performance potential of such machines. This report describes the DASH kernel''s virtual memory (VM) system. The following are key features of the VM system: * A virtual address space is partitioned into three regions, each providing a specific function: 1) private memory, 2) read-only shared memory, and 3) interprocess communication (IPC) buffers. * The IPC region uses VM remapping to provide data movement between virtual address spaces. Software copying is minimized. * Tasks such as page zeroing and pageout are done by processes that can execute concurrently with other activities. * Most of the VM system implementation is machine-independent. The interface of the machine-dependent part is designed to allow efficient implementation on a range of architectures.

[1]  Robert P. Fitzgerald,et al.  A performance evaluation of the integration of virtual memory management and inter-process communication in accent (operating system, copy-on-write) , 1986 .

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

[3]  Richard J. Beach,et al.  A structural view of the Cedar programming environment , 1986, TOPL.

[4]  Henry M. Levy,et al.  Virtual Memory Management in the VAX/VMS Operating System , 1982, Computer.

[5]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[6]  Philip L. Karlton,et al.  A file system supporting cooperation between programs , 1983, SOSP '83.

[7]  Michael Stonebraker,et al.  Operating system support for database management , 1981, CACM.

[8]  Peter J. Denning,et al.  Working Sets Past and Present , 1980, IEEE Transactions on Software Engineering.

[9]  Michael Stonebraker,et al.  Problems in supporting data base transactions in an operating system transaction manager , 1985, OPSR.

[10]  David L. Presotto,et al.  Interprocess communication in the ninth edition unix system , 1990, Softw. Pract. Exp..

[11]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

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

[13]  BabaogluÖzalp,et al.  Converting a swap-based system to do paging in an architecture lacking page-referenced bits , 1981 .

[14]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[15]  Warren A. Montgomery Measurements of sharing in Multics , 1977, SOSP '77.

[16]  Daniel L. Murphy Storage organization and management in TENEX , 1972, AFIPS '72 (Fall, part I).

[17]  Daniel Gajski,et al.  Essential Issues in Multiprocessor Systems , 1985, Computer.

[18]  Robert C. Daley,et al.  The Multics virtual memory , 1972, Commun. ACM.

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

[20]  James R. Larus,et al.  Design Decisions in SPUR , 1986, Computer.

[21]  Jack B. Dennis,et al.  Virtual memory, processes, and sharing in Multics , 1967, SOSP 1967.

[22]  David P. Anderson,et al.  Efficient Local Data Movement in Shared-Memory Multiprocessor Systems , 1987 .

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

[24]  John L. Hennessy,et al.  WSCLOCK—a simple and effective algorithm for virtual memory management , 1981, SOSP.