Internal Fragmentation occurs when fixed‐size memory blocks allocated to processes contain unused space within those blocks. Even though the block is in use, part of it remains wasted because the process doesn’t fill it completely.
How It Happens
- Memory is divided into fixed‐size partitions (in MFT) or fixed‐size pages (in paging).
- Each process or page request is rounded up to the next whole block.
- The last block granted to a process often isn’t filled completely.
- The unused portion of that block is called internal fragmentation.
Example
A system uses 4 KB pages. A process needs 18 KB of memory.
- Pages required = ⌈18 KB ÷ 4 KB⌉ = 5 → total allocated = 5×4 KB = 20 KB
- Internal fragmentation = 20 KB – 18 KB = 2 KB
| Page # |
Used (KB) |
Page Size (KB) |
Internal Frag (KB) |
| 0 |
4 |
4 |
0 |
| 1 |
4 |
4 |
0 |
| 2 |
4 |
4 |
0 |
| 3 |
4 |
4 |
0 |
| 4 |
2 |
4 |
2 |
| Total |
18 |
20 |
2 |
Mitigation Techniques
- Smaller Block Sizes: Reduce page/partition size to lower wasted space (at the cost of larger tables).
- Variable‐Sized Allocation: Use segmentation or MVT so each process gets exactly what it needs.
- Segmentation + Paging: Break logical space into variable‐sized segments, then page those segments with small pages.
Key Point: Internal fragmentation is the waste inside allocated blocks due to fixed‐size allocation units—memory is “in use” but some of it sits idle.