Buddy算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24964575/article/details/53002457

把内存中所有的页面按照2^n划分,其中n=0~5,每个内存空间1个页面、2个页面、4个页面、8个页面、16个页面、32个页面
这里写图片描述
物理内存划分后形成了大小不等的存储块,称为页面块,简称页块。
包含1个页面的块叫做1页块
包含2个页面的块叫做2页块
包含4个页面的块叫做4页块

free_area
①每种页块按前后顺序两两结合成一对Buddy“伙伴”
②按照Buddy关系系统把具有相同大小的空闲页面块组成页块组
③每个页块组用一个双向链表进行管理,共有6个链表分别挂到free_area[]
map
标记内存页面使用情况
第0组每一位表示单个页面使用情况
“1”表示使用,“0”表示空闲
第1组每两个页面使用情况
“1”表示使用,“0”表示空闲
默认为10个数组

注意:
Buddy中的两个页面块中有一个是空闲,另一个全部或部分被占用,该位置“1”
Buddy中的两个页面块都是空闲,或都是被占用事,置“0”

猜你喜欢

转载自blog.csdn.net/qq_24964575/article/details/53002457
今日推荐