Virtual memory is a memory management technique by which programs are made to work as if they have more memory available to them than is actually attached to the computer. Running programs' code and data may be scattered over several areas of physical memory or even placed on a disk until needed.
The main components of an IBM virtual memory system are:
- Virtual memory, consisting of all memory addresses accessible by the CPU hardware. Virtual memory is an abstraction, so systems can easily have more virtual than real memory.
- Pages, fixed-size blocks into which all virtual memory is divided. Most IBM operating systems use 4KB (4,096-byte) pages, although some older systems ran quite well with 2KB (2,048-byte) pages.
- Real memory, Random access memory (RAM) attached to the computing system.
- Page frames, realized by dividing all real memory into pieces equal to the system's page size. Virtual-memory pages must be placed into real-memory page frames before they can be used by the CPU and I/O channels.
- Page Tables track the location of every virtual-memory page, whether in a real-memory page frame or on disk, in a paging file. Critical to memory management, Page Table entries also record the last time each page was accessed.
- Dynamic Address Translation hardware (sometimes called a "DAT box" in early systems because of its separate enclosure) is integrated into the CPU itself and participates in every memory reference. If the Page Table shows the page in a real-memory page frame, DAT translates the virtual address to a real one and allows the memory access to complete. If, on the other hand, the referenced page is not in real memory, the DAT hardware generates an interrupt (internal signal) which calls the Paging Supervisor into action.
- The Paging Supervisor (part of the operating system) manages all memory, both real and virtual, moving pages between real memory and disk as needed, keeping the Page Table updated, servicing memory allocation requests, and cleaning up after itself. As the load on the system increases, a page can be referenced when all page frames are in use. When this happens, the paging supervisor typically identifies the page that has not been read or written for the longest interval of time (least-recently-used), copies the page to the paging file (on disk), updates the Page Table, and uses the newly available page frame to satisfy the memory request.
When functioning properly, the virtual memory system keeps active pages in real memory, inactive ones on disk, and allows more efficient execution of the systems workload.
Read more about this topic: History Of IBM Mainframe Operating Systems, Technical Notes
Famous quotes containing the words virtual and/or memory:
“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)
“Always get rid of theory private object in this way: assume that it constantly changes, but that you do not notice the change because your memory constantly deceives you.”
—Ludwig Wittgenstein (18891951)