previous | start

Segregated Free Lists

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.



previous | start