Virtual Memory

  title={Virtual Memory},
  author={Peter J. Denning},
Virtual memory is the simulation of a storage space so large that programmers do not need to reprogram or recompile their works when the capacity of a local memory or the configuration of a network changes. The name, borrowed from optics, recalls the virtual images formed by mirrors and lenses--images that are not there but behave as if they are. The designers of the Atlas Computer at the University of Manchester invented virtual memory in the 1950s to eliminate a looming programming problem… 
On modeling program behavior
This is a paper about the history of the working set model for program behavior, and the purpose of a program model is providing a basis for determining a program's working information at a given time and predicting what it will be at a future time.
Improving the Address Translation Performance of Widely Shared Pages
A common-mask scheme is described that allows translations from many different virtual address spaces to the same physical address to share a single translation entry and reduces the number of user TLB misses by up to 50% on a set of multi-user benchmarks.
Virtual Memory
"Virtual memory" is a computing term which has come into increasing use in recent years, but its use often causes controversy and misunderstanding, for it is used to mean different things by different people.
Hardware-Supported Virtualization for the L4 Microkernel
This work proposes a novel approach for the construction of virtual machine environments, dividing the virtual machine environment into a necessarily privileged part, and a user-level monitor, and identifies shortcomings of the current kernel with respect to virtual machine support and adds a minimalistic set of extensions.
Dynamic Storage Allocation: A Survey and Critical Review
This survey describes a variety of memory allocator designs and point out issues relevant to their design and evaluation, and chronologically survey most of the literature on allocators between 1961 and 1995.
Virtual Memory (Draft v2)
Overview of virtual memory in its original role as solution of overlay problems and its modern role as means to access and protect shared objects. Virtual memory is one of the engineering triumphs of
Program Restructuring for Virtual Memory
Experimental techniques that can significantly reduce paging exceptions in existing, frequently executed programs and computer displays of memory usage facilitate further optimization of program structure are described.
Memory coherence in shared virtual memory systems
Both theoretical and practical results show that the memory coherence problem can indeed be solved efficiently on a loosely-coupled multiprocessor.
Virtual Storage and Virtual Machine Concepts
The manner in which actual virtual storage and machine systems have been implemented, and certain problems of current implementations, are described.
Generation scavenging: a nondisruptive high performance storage reclamation algorithm
Generation Scavenging is a reclamation algorithm that has no noticeable pauses, eliminates page faults for transient objects, compacts objects without resorting to indirection, and reclaims circular structures, in one third the time of traditional approaches.


A use of fast and slow memories in list-processing languages
A scheme is described which permitting a substantial increase in memory space utilized to store list-structured data. It consists in reducing to one level a nonhomogeneous store composed of fast
Virtual memory, processes, and sharing in MULTICS
The Manchester University ATLAS Operating System Part 1: The Internal Organization and Experience using a time-sharing multiprogramming system with dynamic address relocation hardware.
Considerations in the design of a multiple computer system with extended core storage
This paper discusses the recent innovation of the use of large quantities of addressable (but not executable) fast random access memory in order to heighten the multiprogramming performance of a multicomputer system.
Segmentation and the Design of Multiprogrammed Computer Systems
The segmentation of procedures and data forms a model of program structure that is the basis of an address mapping function which will be a valuable feature of future computer systems.
A Logic-in-Memory Computer
  • H. Stone
  • Computer Science
    IEEE Transactions on Computers
  • 1970
The logic-in-memory computer points to a new direction for achieving orders of magnitude increase in computer performance, since the computer is specifically organized for large-scale integration, the increased performance might be obtained for a comparatively small dollar cost.
Stochastic evaluation of a static storage allocation
An objective rule of evaluation is developed of the efficiency of a specific allocation of a given library as a function of the frequency of calls on each of the programs and data groups in the library.
Dynamic storage allocation in the Atlas computer, including an automatic use of a backing store
Parts of the ACSI-MATIC Programming System including parts of AMCaP have been coded for the MOBiDIC-A and Sylvania 9400 computers and it is expected that an initial system will be operating by the end of summer.
Experience in automatic storage allocation
but a careful distinction must be drawn between a 512word block of information and a 512-word unit of memory; the latter is described as a page of core store or a sector of drum store. Thus a block
Performance Evaluation of Computing Systems with Memory Hierarchies
A program-independent ultimate data processing rate is derived from characteristics of the processor and the fastest random access memory of the system, and degradation factors are determined by combining statistics of the data flow of actual programs and hardware parameters of the processors and all memories.
The management of a multi-level non-paged memory system
There is a clear tendency for large-scale and, especially time-sharing computer systems to have several levels of random access memory with gradations in access time, degree of addressability, and