伙伴系统


linux 中有个被称作分区页框分配器的内核子系统,处理对连续页框的内核分配请求。管理区分配器接受动态内存分配与释放的请求,该部分会搜索一个满足所请求的一组连续页框内存的管理区,每个管理区都被伙伴系统所处理。


伙伴系统工作原理:请求了一个256个页框的块。算法现在256个页框大小的链表中去检查是否有一个空闲块满足要求,如果没有,算法会查找下一个更大的页块。也就是先在512的页框链表中查找,如果有,会把前一半满足请求,剩下的则插入到256的页框链表中。如果没有则继续向更大的页框大小链表中查找。如果更大的也没有,则发出错误信号。
释放过程是一个逆过程,只不过释放完一个页框块时,会检查它的伙伴块,进行合并。
合并的条件:两个块具有相同的大小
物理地址是连续的。第一块的第一个页框的物理地址是每个页框大小的2倍。
形成的更大块插入相应的链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值