一、伙伴系统 如果不遵循以上原则,在一个很大的连续空间里,会出现不连续的空洞,造成外部碎片 一般MAX_ORDER取11,也就是说Linux内核最大分配的最大内存块为2^10个页面,大小为4MB。 二、迁移类型 使用迁移类型可以实现反碎片化 三、页面分配和释放函数 注意ARM架构里没有ZONE_DMA的概念 GFP_KERNEL在UNMOVEBLE迁移类型中分配内存 四、zone水位 五、per-cpu页面分配 per-CPU不仅仅也伙伴系统里面会用到,同样在slab机制里面也会用到,通过对每个CPU建立一个缓冲池,起到未雨绸缪的作用。 六、总结