12. Introduction#

The portion of the OS kernel that manages and tracks memory is the memory management system. Today, paged virtual memory provides each process with a virtual memory abstraction of massive contiguous memory that starts at address 0x0, while multiplexing the limited physical memory to different user processes at the granularity of fixed chunks (e.g., 4KB) of memory (called pages).

We first motivate today’s paged virtual memory by describing how early operating systems worked that supported only physical and segmented virtual memory. We then describe how paged virtual memory works today. We then discuss one of the major uses of memory, the buffer cache, that uses system memory to cache file contents to avoid file requests having to go to slow storage. Finally, we provide some details on how memory management works in Linux today.