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.
Other articles related to "virtual memory, memory, virtual":
... may be optimized by mapping the underlying 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 ... 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 ...
... have hundreds or even thousands of simultaneous users, and the memory required by their programs and data generally adds up to much more than the ... solve this problem by various combinations of virtual memory, described below ... on a disk, and reads it all back into its memory when the user sends a response ...
... 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 real 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 ... 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 ...
... Some 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 ... Segments can be moved in and out of that space pages there can "page" in and out of main memory, providing two levels of virtual memory few if any operating systems do so ...
Famous quotes containing the words memory and/or virtual:
“A man is the prisoner of his power. A topical memory makes him an almanac; a talent for debate, disputant; skill to get money makes him a miser, that is, a beggar. Culture reduces these inflammations by invoking the aid of other powers against the dominant talent, and by appealing to the rank of powers. It watches success.”
—Ralph Waldo Emerson (18031882)
“Tragedy dramatizes human life as potentiality and fulfillment. Its virtual future, or Destiny, is therefore quite different from that created in comedy. Comic Destiny is Fortunewhat the world will bring, and the man will take or miss, encounter or escape; tragic Destiny is what the man brings, and the world will demand of him. That is his Fate.”
—Susanne K. Langer (18951985)