[发明专利]一种内存管理方法和内存管理系统有效
申请号: | 200910147333.6 | 申请日: | 2009-06-11 |
公开(公告)号: | CN101923511A | 公开(公告)日: | 2010-12-22 |
发明(设计)人: | 钱俊 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 彭愿洁;李文红 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 系统 | ||
技术领域
本发明涉及信息技术领域,特别涉及一种内存管理方法和内存管理系统。
背景技术
网络上运行的各种协议和算法越来越丰富,这些都需要配置和管理大量的内存来支持,内存管理中有两个参数比较重要,即内存利用率和内存管理性能,内存利用率是指内存被使用的空间所占的比例,内存管理性能是指申请内存或释放内存的性能。内存利用率越高,则申请内存或释放内存将会需要搬移更多的内存,即内存的管理性能将越低,所以若要达到高的内存利用率,必然会降低内存的管理性能。
目前诸多用于管理内存的内存管理算法中,有些内存管理算法能够实现较高的内存管理性能;有些内存管理算法能够实现较高的内存利用率,可以根据不同的应用场合选择不同的内存管理算法。
局部压缩算法可以通过调节因子实现对内存利用率和内存管理性能进行调节,通常,调节因子的值越大,内存利用率越高,相应的,内存管理性能越低;相反,调节因子的值越小,内存管理性能越高,相应的,内存利用率越低。可以根据不同的应用场合,预先为调节因子设置合适的值,以满足不同的应用场合对内存管理性能和内存利用率的不同需求,由于这种灵活性,使得局部压缩算法在内存管理中得到了越来越广的应用。
局部压缩算法是将不同大小的内存块混放在一起,当混放的内存块满足数据段的长度大于或等于KW,或数据段后面的空洞长度大于或等于W时,内存处于稳定状态,其中K为调节因子,为≥1的整数,W为预先设定的单次申请或单次释放内存区域的最大长度。而在有内存申请或内存释放时,如果出现数据段的长度小于KW,且数据段后的空洞长度也小于W时,内存便会处于不稳定状态,此时需要通过内存搬移使得内存重新恢复稳定。其中未被使用的内存空间为空洞,数据段为相邻两个空洞之间写有数据的区域,该写有数据的区域可以由连续的至少一个内存块构成。
在实施本发明过程中,发明人发现现有技术中至少存在如下问题,目前越来越多的应用场合需要能够同时兼顾内存管理性能和内存利用率,比如在路由器上运行路由查找算法的应用场合中,需要在保证内存利用率较高的情况下,内存管理性能也不会太差,而局部压缩算法,在保证内存利用率较高的情况下,内存管理性能相对较差,不能很好的同时兼顾到内存利用率和内存管理性能。
发明内容
本发明实施例提供一种内存管理方法和内存管理系统,以解决局部压缩算法不能很好的同时兼顾到内存利用率和内存管理性能的问题。
一方面,提供了一种内存管理方法,将内存划分为第一内存区域和第二内存区域,采用局部压缩算法管理第一内存区域,所述方法包括:
所述第一内存区域处于不稳定状态时,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞,所述第二内存块位于所述第二内存区域中。
另一方面,提供了一种内存管理系统,包括:
划分模块,用于将内存划分为第一内存区域和第二内存区域;
管理模块,用于采用局部压缩算法管理第一内存区域;
填充模块,用于所述第一内存区域处于不稳定状态时,用第二内存块中的数据填充导致所述第一内存区域不稳定的空洞,所述第二内存块位于所述第二内存区域中。
本发明实施例提供的一种内存管理方法和内存管理系统,有益效果是:通过划分第二内存区域作为辅助区域,利用局部压缩算法管理第一内存区域时,当第一内存区域处于不稳定状态时,从第二内存区域中取出长度合适的第二内存块的数据来填充导致第一内存区域不稳定的空洞,由于仅需要搬移导致第一内存区域不稳定的空洞大小的内存空间,该空洞的长度通常较小,从而大大减少内存的搬移量,使得第一内存区域能够快速的恢复到稳定状态,进而在保证内存利用率较高的情况下,进一步提高局部压缩算法的内存管理性能,从而使得局部压缩算法能够较好的同时兼顾到内存利用率和内存管理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-1为现有技术局部压缩算法中处于稳定状态的内存区域;
图1-2为现有技术局部压缩算法中处于不稳定状态的内存区域;
图1-3为现有技术局部压缩算法搬移后处于稳定状态的内存区域;
图1-4为现有技术局部压缩算法中处于不稳定状态的内存区域;
图2为本发明实施例提供的一种内存管理方法流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910147333.6/2.html,转载请声明来源钻瓜专利网。