文章目录
一、伙伴分配器分配内存流程
1、查询 n 阶页块
2、查询 n + 1 阶页块
3、查询 n + 2 阶页块
一、伙伴分配器分配内存流程
----
伙伴分配器 以 " 阶 " 为单位 , 分配.../ 释放 物理页 ;
阶 ( Order ) : 物理页 的 数量单位 ,
n
阶页块 指的是
2^n
个 连续的 " 物理页 " ;
页 / 阶 概念参考 【Linux 内核 内存管理...】伙伴分配器 ① ( 伙伴分配器引入 | 页块、阶 | 伙伴 ) 博客 ;
" 伙伴分配器 " 分配内存流程 : 假设要 分配
n
阶页块 ;
1、查询 n 阶页块
查询当前是否有 空闲的
n...阶页块 ,
如果有则 直接分配 ,
如果没有 , 则进入下一步 , 查询
n + 1
阶页块 ;
2、查询 n + 1 阶页块
查询当前是否有 空闲的
n + 1
阶页块 ,
如果有 , 将...n + 1
阶页块 分成
2
个
n
阶页块 ,
一块插入 空闲
n
阶页块链表 ;
一块 直接分配 ,
如果没有 , 则进入下一步 , 查询
n + 2
阶页块 ;
3、查询