Memory Management

Memory Partitioning

Not to be confused with disk partitioning. Here, we are referring to main memory (RAM) partitioning.

Learned in the context of SE350.

Generally, the OS occupies some fixed portion of main memory, and the rest of main memory is available for use by multiple processes. How to manage this remaining memory?

There are many ways to partition memory:

  1. Fixed Partitioning
  2. Dynamic Partitioning
  3. Buddy System
  4. Paging
  5. Segmentation (Memory)

  • Where is buddy system??

Placement Algorithms

The OS must be clever in deciding how to assign processes to memory (how to plug the holes). How to decide which chunk of memory to allocate to the process?

For Fixed Partitioning, this is fairly trivial, just select to first available partition.

For dynamic partioning placement algorithms, see Dynamic Partitioning.