[发明专利]一种提高Linux空闲内存块利用率的方法在审
申请号: | 201310421985.0 | 申请日: | 2013-09-17 |
公开(公告)号: | CN103500145A | 公开(公告)日: | 2014-01-08 |
发明(设计)人: | 张树东;孟兆飞;周丽娟;黄向阳;任仲山 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100048 北京市西三*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提高 linux 空闲 内存 利用率 方法 | ||
1.一种提高Linux空闲内存块利用率的方法,其特征在于:Linux伙伴系统中,放宽对伙伴关系的限制,将大小相等,地址连续但不是从一个大块拆分而来的两个空闲块合并成放宽伙伴关系块;同时在伙伴系统结构体free_area_struct中增加一个二维数组(列维为2)与一个整形变量,二维数组用来记录下一阶放宽伙伴关系两个空闲块的序号,整形变量用来记录下一阶放宽伙伴关系块的数目,如果系统无法满足请求者内存分配的需要,系统会查找将放宽伙伴关系的空闲块,分配给请求者,有效提高了内存利用率;放宽伙伴关系的伙伴块管理是采用数组与位图结合方法,位图仍采用原位图,由于放宽伙伴关系内存块在位图中占有两项,所以放宽伙伴关系的内存块分配或释放时,需要对位图操作两次。
2.根据权利要求1所述的方法,其特征在于:在主要结构体free_area_struct中增加的是一个二维数组和一个整形变量,并且数组的列的维数是2,管理开销小。
3.根据权利要求2所述的方法,其特征在于:在对算法的改进过程中,没有改变原伙伴算法的性能,只是增加了一个二维数组和一个变量的空间开销。此外,由于伙伴算法使用的是位图加链表的方法管理内存,改进后的算法对放宽伙伴关系块是使用原来的位图和新添加的数组的方法进行管理,不需要增加新的位图。
4.根据权利要求3所述的方法,其特征在于:伙伴块的序号二进制形式只有一位不同,而放宽的伙伴关系两个内存块的序号二进制形式是有两位不同的,使用原位图,在查找空闲块的放宽伙伴关系块,我们根据空闲块序号的第order+1位的值来判断,若order+1位为O,空闲块序号减去2order,就得到放宽伙伴关系块的序号,否则,加上2order。
5.根据权利要求4所述的方法,其特征在于:在对放宽伙伴关系块管理中,在找到满足放宽伙伴关系的空闲块时,只是将这两个空闲块的序号记录在上一阶的新增加的数组中,但是并不将这两个空闲块从原来的链表中删除,只是在分配的时候才从链表中删除进行分配,这就最大限度的保证了原伙伴算法的稳定性。
6.根据权利要求5所述的方法,其特征在于:内存分配的时候,先通过原伙伴算法分配内存,如果不能满足分配请求,再使用我们添加的放宽伙伴关系块进行分配,可以有效的满足内存紧张时内存分配的请求。
7.根据权利要求6所述的方法,其特征在于:内存分配的时候,在分配空闲块时,要进行判断验证,都要在上一阶查找所分配的空闲块的序号是否在新增加的二维数组中,如果在,将这个空闲块的序号以及放宽关系伙伴块的序号删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310421985.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据源变更预警方法
- 下一篇:一种基于属性序列图的监听器生成系统和方法