Stanford CS107 Lecture 21: A First Heap Allocator and the Tension Between Speed and Space
CS107 Lecture 21 starts with alignment, throughput, and utilization, then uses a bump allocator and an implicit free list to explain metadata, splitting, placement, internal and external fragmentation, and the need to coalesce freed blocks.