Virtual memory

related topics
{system, computer, user}
{math, number, function}
{work, book, publish}

In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various hardware memory devices (such as RAM modules and disk storage drives), allowing a program to be designed as though:

  • there is only one hardware memory device and this "virtual" device acts like a RAM module.
  • the program has, by default, sole access to this virtual RAM module as the basis for a contiguous working memory (an address space).

Systems that employ virtual memory:

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

Virtual memory is an integral part of a computer architecture; all implementations (excluding[dubious ] emulators and virtual machines) require hardware support, typically in the form of a memory management unit built into the CPU. Consequently, older operating systems (such as DOS[1] of the 1980s or those for the mainframes of the 1960s) generally have no virtual memory functionality[dubious ], though notable exceptions include the Atlas, B5000, IBM System/360 Model 67, IBM System/370 mainframe systems of the early 1970s, and the Apple Lisa project circa 1980.

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 interrupts 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. In any case, embedded systems usually have little use for multitasking features or complicated memory hierarchies.

Full article ▸

related documents
Pulse-code modulation
Genera (operating system)
X Window System
Direct Connect (file sharing)
File Transfer Protocol
Session Initiation Protocol
Computer software
Computer multitasking
X10 (industry standard)
Reduced instruction set computer
IEEE 802.11
Amstrad CPC
Commodore 1541
10 Gigabit Ethernet
Mandriva Linux
Quality of service
Programmable logic device
Software cracking
GeForce FX Series
Flip-flop (electronics)
Universal asynchronous receiver/transmitter
Set-top box