Virtual memory primitives for user programs

Memory Management Units (MMUs) are traditionally used by operating systems to implement disk-paged virtual memory. Some operating systems allow user programs to specify the protection level (inaccessible, readonly, read-write) of pages, and allow user programs to handle protection violations, but these mechanisms are not always robust, e cient, or well-matched to the needs of applications. We survey several user-level algorithms that make use of page-protection techniques, and analyze their common characteristics, in an attempt to answer the question, \What virtual-memory primitives should the operating system provide to user processes, and how well do today's operating systems provide them?"

[1]  Glenn Krasner,et al.  Smalltalk-80: bits of history, words of advice , 1983 .

[2]  David A. Moon,et al.  Garbage collection in a large LISP system , 1984, LFP '84.

[3]  Michael D. O'Dell Putting UNIX on Very Fast Computers or What the Speed of Light Means to Your Favorite System Call , 1990, USENIX Summer.

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

[5]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[6]  David L. Black,et al.  Translation lookaside buffer consistency: a software approach , 1989, ASPLOS 1989.

[7]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, IEEE Trans. Computers.

[8]  Douglas W. Clark Measurements of Dynamic List Structure Use in Lisp , 1979, IEEE Transactions on Software Engineering.

[9]  Jeffrey F. Naughton,et al.  Real-time, concurrent checkpoint for parallel programs , 1990, PPOPP '90.

[10]  Douglas W. Clark,et al.  An empirical study of list structure in Lisp , 1977, CACM.

[11]  Benjamin G. Zorn,et al.  Comparative performance evaluation of garbage collection algorithms , 1989 .

[12]  I FeldmanStuart,et al.  IGOR: a system for program debugging via reversible execution , 1988 .

[13]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, ASPLOS 1987.

[14]  Gerhard Weikum,et al.  Uniform Object Management , 1990, EDBT.

[15]  Andrew W. Appel,et al.  Simple generational garbage collection and fast allocation , 1989, Softw. Pract. Exp..

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

[17]  Douglas W. Clark,et al.  Pipelining and performance in the VAX 8800 processor , 1987, ASPLOS.

[18]  J. L. Eppinger,et al.  Virtual memory management for transaction processing systems , 1989 .

[19]  Raymond A. Lorie,et al.  Physical integrity in a large segmented database , 1977, TODS.

[20]  Malcolm P. Atkinson,et al.  Algorithms for a persistent heap , 1983, Softw. Pract. Exp..

[21]  J TellerPatricia Translation-Lookaside Buffer Consistency , 1990 .

[22]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[23]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[24]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[25]  P. Pierce,et al.  The NX/2 operating system , 1988, C3P.

[26]  LiKai,et al.  Memory coherence in shared virtual memory systems , 1989 .

[27]  Andrew W. Appel,et al.  Garbage Collection can be Faster than Stack Allocation , 1987, Inf. Process. Lett..

[28]  David Ungar Generation scavenging: a nondisruptive high performance storage reclamation algorithm , 1984 .

[29]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[30]  David Ungar,et al.  The design and evaluation of a high performance Smalltalk system , 1987 .

[31]  David L. Black,et al.  Translation lookaside buffer consistency: a software approach , 1989, ASPLOS III.

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

[33]  Michael Stonebraker,et al.  Virtual memory transaction management , 1984, OPSR.

[34]  David M. Ungar,et al.  Generation Scavenging: A non-disruptive high performance storage reclamation algorithm , 1984, SDE 1.

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

[36]  Patricia J. Teller Translation-lookaside buffer consistency , 1990, Computer.