VIRTUAL MEMORY
The physical main
memory is not as large as the address space spanned by an address issued by the
processor. When a program does not completely fit into the main memory, the
parts of it not currently being executed are stored on secondary storage
devices, such as magnetic disks. Of course, all parts of a program that are
eventually executed are first brought into the main memory.
When a new segment of a
program is to be moved into a full memory, it must replace another segment
already in the memory. The operating system moves programs and data
automatically between the main memory and secondary storage. This process is
known as swapping. Thus, the application programmer does not need to be aware
of limitations imposed by the available main memory.
Techniques that
automatically move program and data blocks into the physical main memory when
they are required for execution are called virtual-memory techniques. Programs,
and hence the processor, reference an instruction and data space that is independent
of the available physical main memory space. The binary addresses that the
processor issues for either instructions or data are called virtual or logical
addresses. These addresses are translated into physical addresses by a
combination of hardware and software components. If a virtual address refers to
a part of the program or data space that is currently in the physical memory,
then the contents of the appropriate location in the main memory are accessed
immediately. On the other hand, if the referenced address is not in the main
memory, its contents must be brought into a suitable location in the memory
before they can be used.
Figure shows a typical
organization that implements virtual memory. A special hardware unit, called
the Memory Management Unit (MMU), translates virtual addresses into physical
addresses. When the desired data (or instructions) are in the main memory,
these data are fetched as described in our presentation of the ache mechanism.
If the data are not in the main memory, the MMU causes the operating system to
bring the data into the memory from the disk. The DMA scheme is used to perform
the data Transfer between the disk and the main memory.
ADDRESS TRANSLATION
The process of
translating a virtual address into physical address is known as address
translation. It can be done with the help of MMU. A simple method for
translating virtual addresses into physical addresses is to assume that all
programs and data are composed of fixed-length units called pages, each
of which consists of a block of words that occupy contiguous locations in the
main memory. Pages commonly range from 2K to 16K bytes in length. They
constitute the basic unit of information that is moved between the main memory
and the disk whenever the translation mechanism determines that a move is
required.
Pages should not be too
small, because the access time of a magnetic disk is much longer (several
milliseconds) than the access time of the main memory. The reason for this is
that it takes a considerable amount of time to locate the data on the disk, but
once located, the data can be transferred at a rate of several megabytes per
second. On the other hand, if pages are too large it is possible that a
substantial portion of a page may not be used, yet this unnecessary data will
occupy valuable space in the main memory.
The cache bridges the
speed gap between the processor and the main memory and is implemented in
hardware. The virtual-memory mechanism bridges the size and speed gaps between
the main memory and secondary storage and is usually implemented in part by
software techniques. Conceptually, cache techniques and virtual- memory
techniques are very similar. They differ mainly in the details of their
implementation.
A virtual-memory
address translation method based on the concept of fixed-length pages. Each
virtual address generated by the processor, whether it is for an instruction
fetch or an operand fetch/store operation, is interpreted as a virtual page
number (high-order bits) followed by an offset (low-order bits) that
specifies the location of a particular byte (or word) within a page.
Information about the main memory location of each page is kept in a page
table. This information includes the main memory address where the page is
stored and the current status of the page.
An area in the main
memory that can hold one page is called a page frame. The starting
address of the page table is kept in a page table base register. By
adding the virtual page number to the contents of this register, the address of
the corresponding entry in the page table is obtained. The contents of this
location give the starting address of the page if that page currently resides
in the main memory. Each entry in the page table also includes some control
bits that describe the status of the page while it is in the main memory. One
bit indicates the validity of the page, that is, whether the page is actually
loaded in the main memory.
This bit allows the operating system to invalidate the page without actually removing it. Another bit indicates whether the page has been modified during its residency in the memory. As in cache memories, this information is needed to determine whether the page should be written back to the disk before it is removed from the main memory to make room for another page. Other control bits indicate various restrictions that may be imposed on accessing the page. For example, a program may be given full read and write permission, or it may be restricted to read accesses only.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.