Application-controlled physical memory using external page-cache management

Next generation computer systems will have gigabytes of physical memory and processors in the 100 MIPS range or higher. Contrary to some conjectures, this trend requires more sophisticated memory management support for memory-bound computations such as scientific simulations and systems such as large-scale database systems, even though memory management for most programs will be less of a concern. We describe the design, implementation and evaluation of a virtual memory system that provides application control of physical memory using external page-cache management. In this approach, a sophisticated application is able to monitor and control the amount of physical memory it has available for execution, the exact contents of this memory, and the scheduling and nature of page-in and page-out using the abstraction of a physical page cache provided by the kernel. We claim that this approach can significantly improve performance for many memory-bound applications while reducing kernel complexity, yet does not complicate other applications or reduce their performance.

[1]  Robert C. Daley,et al.  The multics virtual memory , 1969, SOSP '69.

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

[3]  Irving L. Traiger Virtual memory management for database systems , 1982, OPSR.

[4]  David R. Cheriton,et al.  UIO: a uniform I/O system interface for distributed systems , 1987, TOCS.

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

[6]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[7]  Michael Stonebraker,et al.  The Design of XPRS , 1988, VLDB.

[8]  Michael Wayne Young Exporting a user interface to memory management from a communication-oriented operating system , 1989 .

[9]  R. Hagmann Comments on workstation operating systems and virtual memory , 1989, Proceedings of the Second Workshop on Workstation Operating Systems.

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

[11]  Michael J. Flynn,et al.  Page allocation to reduce access time of physical caches , 1990 .

[12]  David R. Cheriton,et al.  Binary Emulation of UNIX Using the V Kernel , 1990, USENIX Summer.

[13]  David L. Black Scheduling support for concurrency and parallelism in the Mach operating system , 1990, Computer.

[14]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[15]  Dylan McNamee,et al.  Extending the Mach External Pager Interface to Accomodate User-Level Page Replacement Policies , 1990, USENIX MACH Symposium.

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

[17]  Andrew W. Appel,et al.  Virtual memory primitives for user programs , 1991, ASPLOS IV.

[18]  Indira Subramanian Managing Discardable Pages with an External Pager , 1991, USENIX MACH Symposium.

[19]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[20]  Anoop Gupta,et al.  The DASH prototype: implementation and performance , 1992, ISCA '92.