当前位置: 首页 > 工具软件 > Buddy++ > 使用案例 >

Linux内存管理(十五):buddy 系统简介和初始化

汤洋
2023-12-01

源码基于:Linux5.4

0. 前言

zone初始化一文中简单剖析了 zone 的初始化流程,也是继 memblock初始化 SPARSEMEM初始化 之后有一个内存管理层,而zone 这一层管理层中,所有的物理内存都会被添加到zone 中的成员变量 free_area 数组管理,而它就是buddy 系统管理的核心数据结构。

buddy 系统是操作系统中常用的一种动态存储管理方法,在用户提出申请时,分配一个大小合适的内存块给用户,并在用户释放内存块时回收。在buddy 系统中,内存块(page block)的大小是2 的 order 次幂个pages。Linux 内核中 order 的最大值用MAX_ORDER来表示,通常是11,也就是最大的物理内存块可以达到 

 类似资料: