文章目录
- 一、伙伴分配器引入
- 二、页块、阶
- 三、伙伴
一、伙伴分配器引入
Linux 内核 初始化 完成之后 , 就会 丢弃 引导内存分配器 , 如 : bootmem 分配器 , memblock 分配器 ;
此时 , 使用 " 页分配器 “ 管理 ” 物理页 " ,
" 伙伴分配器 “ 就是 ” 页分配器 " , 其特点是 算法简单 , 性能高效 ;
二、页块、阶
伙伴分配器 有如下概念 :
页块 ( Page Block ) : 英文名称 Page Block , 指的是 连续的 " 物理页 " ;
阶 ( Order ) : 物理页 的 数量单位 ,
阶页块 指的是
个 连续的 " 物理页 " ;
如 :
阶页块是
个 连续的 " 物理页 " ;
阶页块是
个 连续的 " 物理页 " ;
阶页块是
个 连续的 " 物理页 " ;
阶页块是
个 连续的 " 物理页 " ;
三、伙伴
个
阶 " 页块 ( Page Block ) " 在满足 如下
个条件的前提下 , 可以 称为 " 伙伴 " :
① 页块相邻 :
个 页块 ( Page Block ) 必须相邻 , 其物理地址是连续的 ;
② 页块页号 : 第
个物理页 页号 是
的整数倍 ;
③ 合并页块 : 如果需要合并这两个
阶页块为
阶页块 , 则第
页的 物理页 页号必须是
整数倍 ;
页 与
页是伙伴 ;
页 与
页是伙伴 ;
页 与
页不是伙伴 , 这两页如果合并成页块 , 其第一页的页号不是
整数倍 ;