History of IBM Mainframe Operating Systems - Technical Notes - Virtual Memory

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

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

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 than the physical memory ... solve this problem by various combinations of virtual memory, described below ... programs and data on a disk, and reads it all back into its memory when the user sends a response ...
Circular Buffer - Optimization
... buffer to two contiguous regions of virtual memory ... to the circular buffer 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 ... 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 ...
Segmented Virtual Memory
... 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 ...
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 ... 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 ...
IBM System/360 Model 67 - Virtual Memory
... The 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 ...

Famous quotes containing the words memory and/or virtual:

    We turned to other things.
    I haven’t any memory have you?
    Of ever coming to the place again
    To see if the birds lived the first night through.
    And so at last to learn to use their wings.
    Robert Frost (1874–1963)

    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 Fortune—what 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 (1895–1985)