Fragmentation
Suppose we have a 1G memory, and are allocating blocks in the range from 50M to 300M. Initially filled with several partitions.
1010M Used
1023M
0
P1
250M
P2
155M
P3
170M
P4
300M
P5
60M
P6
75M
Then, P2 exits, and another partition is started.
995M Used
1023M
0
P1
250M
P3
170M
P4
300M
P5
60M
P6
75M
P7
140M
Now, P4 goes, after which, three more are started.
965M Used
1023M
0
P1
250M
P3
170M
P5
60M
P6
75M
P7
140M
P8
130M
P9
80M
P10
60M
Now, P1, P5 and P10 finish, and other partitions are created instead.
970M Used
1023M
0
P3
170M
P6
75M
P7
140M
P8
130M
P9
80M
P11
240M
P12
135M
And then some other stuff happened...
930M Used
1023M
0
P6
75M
P12
135M
P13
200M
P14
300M
P15
220M
We now have 94M unused, but the largest unused block is 35M, which is insufficient for any new partition. This is called external fragmentation.