Partitions are of variable length and number.
Each process is allocated a contiguous memory block of exactly the size it requires - no internal fragmentation.
Termination of a process releases its memory block.
Possible allocation algorithms:
- Best-fit: allocate the smallest hole that fits.
- Worst-fit: allocate the largest hole.
- First-fit: allocate the first hole that fits from the beginning.
- Next-fit: allocate the first hole that fits from last placement.