Many of us use computers on a daily basis. Although we use it for many different purposes
in many different ways, we share one common reason of using them; to make our
job more efficient and easier.
However, there are times when computers cannot run as fast as you want it to or just
cannot handle certain processes effectively, due to the shortage of system resources.
When the limitations of system resources become a major barrier to acheiving your maximum
productivity, we often consider the apparent ways of upgrading the system, such as switching
to a faster CPU, addding more physical memory (RAM), installing utility programs, and so on.
As a computer user, you want to make the most of the resources available; the process of
preparing plans to coordinate the total system to operate in the most efficient manner.
This is called a system optimization.
When it comes to system optimization, there is one great invention of modern computing called
virtual memory. It is an imaginary memory area supported by some operating system (for example,
Windows but not DOS) in conjunction with the hardware. You can think of
virtual memory as an alternate set of memory addresses. Programs use
these virtual addresses rather than real addresses to store instructions
and data. When the program is actually executed, the virtual addresses
are converted into real memory addresses.
The purpose of virtual memory is to enlarge the address space, the set of
addresses a program can utilize. For example, virtual memory might
contain twice as many addresses as main memory. A program using all of
virtual memory, therefore, would not be able to fit in main memory all at
once. Nevertheless, the computer could execute such a program by copying
into main memory those portions of the program needed at any given point
during execution.
To facilitate copying virtual memory into real memory, the operating
system divides virtual memory into pages, each of which contains a fixed
number of addresses. Each page is stroed on a disk until it is needed.
When the page is needed, the operating system copies it from disk to main
memory, translating the virtual addresses into real addresses.
The process of translating virtual addresses into real addresses is
called mapping. The copying of virtual pages from disk to main memory is
known as paging or swapping.
Some physical memory is used to keep a list of references to the most
recently accessed information on an I/O (input/output) device, such as
the hard disk. The optimization it provides, is that it is faster to read
the information from physical memory, than use the relevant I/O channel
to get that information. This is called caching. It is implemented inside
the OS.