加载中...

伙伴系统(Buddy System)是一种物理内存分配算法,把空闲内存组织成大小为 2 的幂次个页框的块,是 Linux 等内核页级内存管理的核心。
分配时,系统在对应大小的空闲链表中查找;若无合适块,则将更大的块对半分裂,分裂出的两块互为"伙伴"。释放时,若某块的伙伴也空闲,则两者合并成更大的块并逐级向上尝试继续合并,从而抑制外部碎片。
Linux 按 order(0 到 10,即 1 到 1024 个连续页)维护空闲链表,并区分迁移类型以配合内存规整(compaction)。/proc/buddyinfo 可查看各 order 的空闲块分布。
优点是分配与合并效率高、实现简洁;缺点是按 2 的幂取整会造成内部碎片,大块连续内存在长时间运行后仍可能难以满足,需依赖 compaction 与 CMA 等机制补救。

登录 后参与讨论
暂无讨论,来发表第一条评论吧