Memory management
Single-process system
one process in memory at a time:
-
Application has full control of memory allocation.
(Can be very efficient in use of memory.)
-
no protection
-
Often OS structures at well-defined positions in
memory
-
program must manage its own virtual memory (using
overlays)
Memory management is very simple in this scheme.
There is a single block of memory usable by an a process (typically the
OS takes up room at both ends of the address space). When the OS loads
a program, it checks that there is enough space for the process, then loads
in the program code and sets it running. Thereafter, there is next to no
memory management to be done until the process terminates, and the next
program must be run.
Overlays
If the application is very large, it may have
to resort to overlays: loading in parts of itself as required. For example,
if it is a word processing package, it may not load the printing routines until the user wishes
to print, at which stage, it might discard the search-replace overlay,
and load the printing overlay. This requires that the programmer (or compiler)
perform the job of splitting up the program into overlays, and that the
software explicitly load and unload overlays as the software runs. This
is awkward.
last updated 18 May 1998