- Programs expand to fill the memory available to hold them. Consequently, most computers have a memory hierarchy, with a small amount of very fast, expensive, volatile cache memory, tens of megabytes of medium-speed, medium-price, volatile main memory (RAM), and tens or hundreds of gigabytes of slow, cheap, nonvolatile disk storage.
- It is the job of the OS to coordinate how these memories are used.
- Various ways to manage memory. The memory-management algorithms vary from a primitive bare-machine approach to paging and segmentation strategies.
- Each approach has its own advantages and disadvantages. Selection of a memory-management method for a specific system depends on many factors, especially on the hardware design of the system.