Memory Management

Memory management is the art and the process of coordinating and controlling the use of memory in a computer system. Memory management can be divided into three areas:
  1. Memory management hardware (MMUs, RAM, etc.) consists of the electronic devices and associated circuitry that store the state of a computer. These devices include RAM, MMUs (memory management units), caches, disks, and processor registers. The design of memory hardware is critical to the performance of modern computer systems. In fact, memory bandwidth is perhaps the main limiting factor on system performance.
  2. Operating system memory management (virtual memory, protection) is concerned with using the memory management hardware to manage the resources of the storage hierarchy and allocating them to the various activities running on a computer. The most significant part of this on many systems is virtual memory, which creates the illusion that every process has more memory than is actually available. OS memory management is also concerned with memory protection and security, which help to maintain the integrity of the operating system against accidental damage or deliberate attack. It also protects user programs from errors in other programs.
  3. Application memory management (allocation, deallocation, garbage collection) involves obtaining memory from the operating system, and managing its use by an application program. Application programs have dynamically changing storage requirements. The application memory manager must cope with this while minimizing the total CPU overhead, interactive pause times, and the total memory used.


Subsections
Cem Ozdogan 2010-05-11