[发明专利]一种内存管理方法和内存管理系统有效
申请号: | 200910147333.6 | 申请日: | 2009-06-11 |
公开(公告)号: | CN101923511A | 公开(公告)日: | 2010-12-22 |
发明(设计)人: | 钱俊 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 彭愿洁;李文红 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 系统 | ||
1.一种内存管理方法,其特征在于,将内存划分为第一内存区域和第二内存区域,采用局部压缩算法管理第一内存区域,所述方法包括:
所述第一内存区域处于不稳定状态时,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞,所述第二内存块位于所述第二内存区域中。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:当接收到内存申请时,优先在所述第二内存区域中进行分配。
3.根据权利要求2所述方法,其特征在于,所述方法还包括:
在所述第二内存区域中创建至少一页,并管理所述页的页信息;其中每页由长度相等的至少一个第二内存块连续排列组成,所述第二内存块的长度小于或等于预先设定的单次申请内存或单次释放内存的最大长度。
4.根据权利要求3所述方法,其特征在于,所述页信息包括页首地址与第二内存块长度的对应关系、和第二内存块的状态信息;
则优先在所述第二内存区域中进行分配包括:
判断是否有与本次申请内存段长度相等的第二内存块长度,是则依据所述页首地址与第二内存块长度的对应关系,获取该第二内存块长度对应的页首地址;
否则判断是否有大于本次申请内存段长度的第二内存块长度,是则依据所述页首地址与第二内存块长度的对应关系,获取该第二内存块长度对应的页首地址;
依据所述第二内存块的状态信息,在所述页首地址对应的页内分配处于空闲状态的第二内存块。
5.根据权利要求4所述方法,其特征在于,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞包括:
判断是否有与导致所述空洞长度相等的第二内存块长度,是则依据所述页首地址与第二内存块长度的对应关系,获取该第二内存块长度对应的页首地址;依据所述第二内存块的状态信息,在所述页首地址对应的页内,取出处于非空闲状态的第二内存块中的数据,填充导致所述第一内存区域不稳定的空洞;或
判断是否有多个第二内存块长度之和等于所述空洞长度,是则依据等于所述空洞长度所需的第二内存块长度与个数的对应规则,和所述页首地址与第二内存块长度的对应关系,获取该多个第二内存块长度分别对应的至少一个页首地址;依据所述第二内存块的状态信息,在该至少一个页首地址对应的页内,取出相应长度和个数的处于非空闲状态的第二内存块中的数据,填充导致所述第一内存区域不稳定的空洞。
6.根据权利要求2所述方法,其特征在于,优先在所述第二内存区域中进行分配包括:
判断所述第二内存区域中是否有大于或等于本次申请内存段长度的空洞,是则在所述空洞中进行分配,生成新的第二内存块,并管理所述第二内存块长度和地址的对应关系。
7.根据权利要求6所述方法,其特征在于,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞包括:
判断是否有与导致第一内存区域不稳定的空洞长度相等的第二内存块长度,是则依据所述第二内存块长度和地址的对应关系,获取该第二内存块长度对应的地址,取出所述地址对应的第二内存块中的数据,填充导致所述第一内存区域不稳定的空洞;或
判断是否有多个第二内存块长度之和等于导致第一内存区域不稳定的空洞的长度,是则依据所述第二内存块长度和地址的对应关系,获取该多个第二内存块长度分别对应的多个地址;取出该多个地址对应的第二内存块中的数据,填充导致所述第一内存区域不稳定的空洞。
8.根据权利要求1所述方法,其特征在于,判断导致所述第一内存区域不稳定的空洞的方法包括:
判断如果所述第一内存区域中数据段的长度小于调节因子与预设值的乘积,且该数据段后的空洞长度小于预设值,则该空洞为导致所述第一内存区域不稳定的空洞;所述预设值为预先设定的单次申请内存或单次释放内存的最大长度值。
9.一种内存管理系统,其特征在于,包括:
划分模块,用于将内存划分为第一内存区域和第二内存区域;
管理模块,用于采用局部压缩算法管理第一内存区域;
填充模块,用于所述第一内存区域处于不稳定状态时,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞,所述第二内存块位于所述第二内存区域中。
10.根据权利要求9所述系统,其特征在于,所述系统还包括优先分配模块,用于当接收到内存申请时,优先在所述第二内存区域中进行分配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910147333.6/1.html,转载请声明来源钻瓜专利网。