Information Technology Reference
In-Depth Information
When the program and data are stored initially in files, one or
ganization of storage involves three basic steps:
1. Move the full application program and initial data from the
files to main memory.
2. Move program instructions and data between main memory
and the CPU as needed while the program runs.
3. Move final data from main memory back to relevant files.
In this process, steps 1 and 3 might be relatively slow, but pro
cessing in step 2 might be reasonably efficient. Although moving
material between memory and the CPU as needed could work, it
would limit programs and data (combined) to a size that would fit
in main memory all at once. Such a limitation would not be a prob
lem for some applications, but it would constrain others severely.
Further, if a machine were configured to run several programs con
currently (e.g., print from one application while working on an
other), then all the programs and data sets would be needed in main
memory at once. (More about the handling of concurrent process
ing in the next chapter.) Altogether, the requirement that an entire
application (program and data) fit in main memory at once turns
out to be severe, and one that the designers of computer systems
want to avoid.
The solution to this problem is to use main memory as cache for
files, just as cache memory itself acts as highspeed temporary stor
age for the CPU. To be more specific, a computing environment
considers space for running programs and their data at a logical
level as being very large. Such logical space is called virtual memory ,
and is designed to be large enough to store all programs and data
for the several computer applications and activities that might be
running at once. In this context, the term virtual memory deserves
some comment. To a computing practitioner, the term is meant to
suggest that a program may be considered as a large (perhaps limit
less) expanse of continuous storage. That is, in solving large or com
plex problems, programmers prefer to think of a program and data
as being together in one section of memory; conceptually, virtual
memory should be as large as needed. In practice, such a block of
space may involve a larger physical size than is actually available
through main memory technology. Thus, in practice, virtual mem
ory typically is located physically on a large section of a disk within
Search WWH ::




Custom Search