[发明专利]一种Linux操作系统的内存分配方法及释放方法有效
申请号: | 201610638497.9 | 申请日: | 2016-08-05 |
公开(公告)号: | CN106294198B | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 刘相乐 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种Linux操作系统的内存分配方法,包括:判断是否包含有符合内存分配请求的内存空间。如果是,则判断第一链表是否包含有内存分配请求对应的目标内存块;如果否,则根据内存分配请求对应的目标级别在第二链表中确定出第二目标子链表;判断第二目标子链表中是否包含有目标内存块,如果否,缩减分配给Linux操作系统自身的内存。该分配方法,在现有伙伴算法的数据结构上,增加了第二链表和第二位图,当在第一链表中没有得到内存分配请求的内存空间时,可以在第二链表中进一步尝试,减少了内存分配请求失败的几率,提高了内存分配的效率,进一步提高了内存空间的利用率。此外,本发明还公开一种Linux操作系统的内存释放方法,效果如上。 | ||
搜索关键词: | 一种 linux 操作系统 内存 分配 方法 释放 | ||
【主权项】:
1.一种Linux操作系统的内存分配方法,其特征在于,包括:S10:判断所述Linux操作系统中是否包含有符合内存分配请求的内存空间;如果是,进入步骤S11;S11:判断第一链表是否包含有所述内存分配请求对应的目标内存块;如果否,则进入步骤S12;S12:根据所述内存分配请求对应的目标级别在第二链表中确定出第二目标子链表;S13:判断所述第二目标子链表中是否包含有所述目标内存块;如果是,进入步骤S14,如果否,进入步骤S15;S14:返回所述目标内存块的地址;S15:缩减分配给所述Linux操作系统自身的内存,返回步骤S10;其中,所述第一链表包含多个级别的第一子链表,分别用于存储多个级别的内存块,所述第一链表的伙伴规则为:若两个内存块的大小相同、物理位置相邻且两个内存块的地址除最后一位都相同时,则所述两个内存块互为伙伴块,第一位图指示所述第一链表中的内存块的状态;所述第二链表包含多个级别的第二子链表,分别用于存储多个级别的内存块,所述第二链表的伙伴规则为:若两个内存块的大小相同、物理位置相邻且两个内存块的地址除最后两位都相同时,则两个内存块互为伙伴块,第二位图指示所述第二链表中的内存块的状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610638497.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种面向NAND闪存的页面置换方法
- 下一篇:一种新型无线路由器