The idea is to cut down on the number of free blocks that need to be examined when trying to satsify a mm_malloc request size.
Instead of just one free list, a fixed number of separate free lists are maintained.
A minimum block size is required for each free list.
When a block becomes free, it is placed on the list with the largest minimum block size for which it qualifies.
When a request is made for a given size, the lists with smaller minimum block sizes can be skipped and the first block on any other free list can be used.
(But the last list is a special case.)
Should the free blocks on each list be the same size? (Simple Segregated Storage)
Segregated Fits uses different sizes on each list, but each list has a minimum size.