buddy内存分配算法浅析

本文介绍了Buddy内存分配算法的基本原理,包括如何通过划分内存块来满足内存请求,以及如何通过合并空闲块来避免内存碎片。文章还讨论了算法的实现细节及其在Linux内核中的应用。

因为今天遇到这个问题,所以上网搜了下,看了觉得还是很有用处,便写了这篇博文。

buddy内存分配算法技术是一种内存分配算法,将内存划分分区,试图以适当地满足内存请求。buddy内存分配算法是比较容易实行。它支持有限,高效的分裂和内存块的合并。目的是为了解决内存的外碎片


避免外碎片的方法有两种
1,利用分页单元把一组非连续的空闲页框映射到非连续的线性地址区间。
2,开发适当的技术来记录现存的空闲连续页框块的情况,以尽量避免为满足对小块的请求而把大块的空闲块进行分割。


这里给出伙伴的概念,满足以下三个条件的称为伙伴:
1)两个块大小相同;
2)两个块地址连续;
3)两个块必须是同一个大块中分离出来的



当存储请求时如下发生了什么:
如果内存要分配
1.寻找一个合适的大小(最小2的存储器插槽ķ块是大于或等于所请求的存储器的)
       1.如果它被找到,它被分配给该程序
       2.如果不是,它试图使一个合适的存储器插槽。该系统这样做尝试以下:
                 1.拆分一个免费的内存插槽比请求存储器大小成半较大
                  2.如果达到了下限值时,则分配的存储器的量
           
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值