next up previous contents
Next: An Abstract Model of Up: tlk-html.html Previous: Kernel Data Structures

Memory Management

  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 up previous contents
Next: An Abstract Model of Up: tlk-html.html Previous: Kernel Data Structures

David A. Rusling
david.rusling@reo.mts.dec.com