吉良吉影这篇文章说得清楚,介绍了内存对齐,内存结构,简单实现基于FreeList的FIRST_FIT和BEST_FIT模式的内存分配器。最后比较了new和delete的区别(比较特殊的区别是placement new)。
这篇文章引申出要理解windows/linux内存管理的原理,和c++程序堆内存的管理。
操作系统将Physical Memory映射为连续的Virtual Memory(通过TLB),并提供了一些与Virtual Memory相关的API(VirtualAlloc,VirtualFree…)对Virtual Memory进行管理,在Virtual Memory API之上又构建了Heap Memory Memory API(HeapALloc…),而C的内存管理机制(malloc,free)就构建在 Heap Memory Memory API之上。