| ||Definition:|| |
2. The process, or result, of splitting a large area of free memory (on disk or in main memory) into smaller non-contiguous blocks. This happens after many blocks have been allocated and freed. For example, if there is 3 kilobytes of free space and two 1k blocks are allocated and then the first one (at the lowest address) is freed, then there will be 2k of free space split between the two 1k blocks. The maximum size block that could then be allocated would be 1k, even though there was 2k free. The solution is to "compact" the free space by moving the allocated blocks to one end (and thus the free space to the other). See garbage collection.