Virtual Memory

In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage (such as random-access memory and disk storage), allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which behaves like directly addressable read/write memory (RAM).

Most modern operating systems that support virtual memory also run each process in its own dedicated address space. Each program thus appears to have sole access to the virtual memory. However, some older operating systems (such as OS/VS1 and OS/VS2 SVS) and even modern ones (such as IBM i) are single address space operating systems that run all processes in a single address space composed of virtualized memory.

Virtual memory makes application programming easier by hiding fragmentation of physical memory; by delegating to the kernel the burden of managing the memory hierarchy (eliminating the need for the program to handle overlays explicitly); and, when each process is run in its own dedicated address space, by obviating the need to relocate program code or to access memory with relative addressing.

Memory virtualization is a generalization of the concept of virtual memory.

Virtual memory is an integral part of a computer architecture; implementations require hardware support, typically in the form of a memory management unit built into the CPU. While not necessary, emulators and virtual machines can employ hardware support to increase performance of their virtual memory implementations. Consequently, older operating systems, such as those for the mainframes of the 1960s, and those for personal computers of the early to mid 1980s (e.g. DOS), generally have no virtual memory functionality, though notable exceptions for mainframes of the 1960s include:

  • the Atlas Supervisor for the Atlas
  • MCP for the Burroughs B5000
  • MTS, TSS/360 and CP/CMS for the IBM System/360 Model 67
  • Multics for the GE 645
  • the Time Sharing Operating System for the RCA Spectra 70/46

The Apple Lisa is an example of a personal computer of the 1980s that features virtual memory.

Embedded systems and other special-purpose computer systems that require very fast and/or very consistent response times may opt not to use virtual memory due to decreased determinism; virtual memory systems trigger unpredictable traps that may produce unwanted "jitter" during I/O operations. This is because embedded hardware costs are often kept low by implementing all such operations with software (a technique called bit-banging) rather than with dedicated hardware.

Read more about Virtual Memory:  History, Paged Virtual Memory, Segmented Virtual Memory

Other articles related to "virtual memory, virtual, memory":

IBM System/360 Model 67 - Virtual Memory
... S/360-67 design included a radical new component for implementing virtual memory, the "DAT box" (Dynamic Address Translation box) ... The Model 67's virtual memory support was very similar to the virtual memory support that eventually became standard on the entire System/370 line ... The S/360-67 virtual address space was divided into pages (of 4096 bytes) grouped into segments (of 1 million bytes) pages were dynamically mapped onto the processor's ...
Segmented Virtual Memory
... systems, such as the Burroughs B5500, use segmentation instead of paging, dividing virtual address spaces into variable-length segments ... A virtual address here consists of a segment number and an offset within the segment ... and paging can be used together by dividing each segment into pages systems with this memory structure, such as Multics and IBM System/38, are usually paging-predo ...
Page (computer Memory)
... A page, memory page, or virtual page is a fixed-length contiguous block of virtual memory, and it is the smallest unit of data for the following memory allocation performed by the operating ... Virtual memory allows a page that does not currently reside in main memory to be addressed and used ... A program addressing the memory has no knowledge of a page fault or a process following it ...
Circular Buffer - Optimization
... buffer to two contiguous regions of virtual memory ... may then be carried out with greater efficiency by means of direct memory access those accesses which fall beyond the end of the first virtual-memory region will automatically wrap around to the beginning of the ... When the read offset is advanced into the second virtual-memory region, both offsets—read and write—are decremented by the length of the underlying buffer ...
History Of IBM Mainframe Operating Systems - Technical Notes - Time-sharing
... Large time-sharing systems can have hundreds or even thousands of simultaneous users, and the memory required by their programs and data generally adds up to much more ... Time-sharing systems solve this problem by various combinations of virtual memory, described below ... a disk, and reads it all back into its memory when the user sends a response ...

Famous quotes containing the words memory and/or virtual:

    Canst thou not minister to a mind diseased,
    Pluck from the memory a rooted sorrow,
    Raze out the written troubles of the brain,
    And with some sweet oblivious antidote
    Cleanse the fraught bosom of that perilous stuff
    Which weighs upon the heart?
    William Shakespeare (1564–1616)

    Neither dead nor alive, the hostage is suspended by an incalculable outcome. It is not his destiny that awaits for him, nor his own death, but anonymous chance, which can only seem to him something absolutely arbitrary.... He is in a state of radical emergency, of virtual extermination.
    Jean Baudrillard (b. 1929)