Next: An Abstract Model of
Up: tlk-html.html
Previous: Kernel Data Structures
This chapter describes the way that Linux handles the memory in the
system.
The memory management subsystem is one of the most important parts of
the operating system.
ReviewNotes
This chapter is quite old and in need of reworking. Perhaps the memory allocation should move
to the kernel chapter.
Since the early days of computing, there has been a need
for more memory than there exists physically in a system.
Strategies have been developed to overcome this limitation
and the most successful of these is virtual memory.
Virtual memory makes the system appear to have more memory than it actually
has by sharing it between competing processes as they need it.
This sleight of hand is invisible to those processes and to the
users of the system. Virtual memory allows:
- Large Address Spaces
- The operating system makes the system appear
as if it has a larger amount of memory than it actually has.
The virtual memory can be many times larger than the physical memory in the
system,
- Fair Physical Memory Allocation
- The memory management subsystem must
fairly share the physical memory of the system between the running
processes in the system,
- Protection
- Memory management ensures that every process in the system
is protected from all other processes; in this way a crashing application
cannot affect other processes or the operating system itself.
- Shared Virtual Memory
- Virtual memory allows two processes to share memory
between themselves, for example use a shared library. Shared libraries mean
that library code only needs to exist in one place and not be duplicated
in every application.
Before considering the methods that Linux uses to support virtual
memory it is useful to consider an abstract model that is not cluttered
by too much detail.
Next: An Abstract Model of
Up: tlk-html.html
Previous: Kernel Data Structures
David A. Rusling
david.rusling@reo.mts.dec.com