Fragmentation
Overview
Fragmentation refers to the situation in which otherwise unused memory is unavailable to satisfy allocation requests. That is, it refers to the inability of payloads to be placed in one contiguous block of memory.
There exist two types of fragmentation:
- Internal fragmentation. This refers to unutilized space within an allocated block.
- That is, the allocated block is larger than the payload.
- External fragmentation. This refers to scattered, unallocated space between allocated blocks.
- That is, there is enough aggregate free memory to satisfy an allocate request, but no single free block is large enough to handle it.
False fragmentation refers to the situation in which adjacent free blocks are divided too finely to be used, despite the fact that coalescing them together would yield a usable block.
Compaction
Compaction refers to the process by which free memory is coalesced into larger chunks. It is a strategy used to reduce external fragmentation.

Defragmentation
Defragmentation refers to the process by which blocks of a file are rearranged into contiguous memory regions. It may help in reducing external fragmentation.