[发明专利]内存管理方法及装置无效
申请号: | 201010529424.9 | 申请日: | 2010-11-01 |
公开(公告)号: | CN101984417A | 公开(公告)日: | 2011-03-09 |
发明(设计)人: | 李爱华;徐阳;潘海兵 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 余刚;吴孟秋 |
地址: | 518057 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 装置 | ||
技术领域
本发明涉及通信领域,具体而言,涉及一种内存管理方法及装置。
背景技术
在移动通信嵌入式应用领域,嵌入式操作系统的应用日益广泛,但是,硬件平台存在内存限制,这就使得动态内存的使用成为了趋势。通常,使用动态内存可以提高内存的使用效率,提高系统容量。
相关技术提供了一种动态内存管理接口,包括:申请接口malloc()和释放接口free()。但是上述接口长时间的使用以后会出现如图1所示情况,即,内存会被分成大小不同的若干块。若接收到内存申请时,需要遍历整个空闲队列找到比当前申请的内存块尺寸相等或者更大的内存块,然后从该内存块上划分申请的内存块尺寸大小的内存,把剩余的内存再挂接在空闲队列上。这样随着不断地申请释放会产生大量的不连续内存碎片,存在较大的内存浪费,而且每次查找比当前申请的内存块尺寸相等或者更大的内存块,均需要对整个链表进行遍历,查找效率较差。
相关技术中还提供了一些改进的动态内存管理方式,如DSP(Digital Signal Processor,数字信号处理器)上的DSP/BIOS(BasicInstruction Operation System,基本指令操作系统)提供的缓冲池Buffer Pool方式,示意图请参见图2,这种内存管理方式需要预先根据应用的情况分配好各个队列的内存数量,在初始化的时候把队列根据内存的大小和数量建立好,在应用过程中根据需求进行申请和释放。这就可能由于预先划分的不合理出现一种队列中内存使用完了,而其他队列中还有充足内存的情况,这种动态内存管理方式采用固定尺寸管理,灵活性差,内存仍不能得到充分利用。
针对相关技术中内存浪费的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种内存管理方法及装置,以至少解决上述内存浪费的问题。
根据本发明的一个方面,提供了一种内存管理方法,包括:
根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;以及
当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
较优的,所述根据应用系统的内存需求配置至少一个队列之前,包括:
为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;以及
在所述各队列中未查找与申请的内存块尺寸匹配的内存块并分配给所述应用时,包括:
在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
较优的,若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
较优的,所述应用系统已释放的内存块是所述内存堆最后一次分割的内存块时,回收该内存块。
较优的,在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用,包括:从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块。
较优的,从所述内存堆的底部依次分割与所述申请的内存块尺寸匹配的内存块之后,还包括:
在所述内存堆头部保存已分配的内存块地址与所述内存堆地址形成的偏移量,并将所述偏移量进行排序;以及
根据排序结果确定所述内存堆即将回收的内存块的地址。
较优的,当所述应用系统改变,或者所述应用系统的内存需求改变时,根据改变后的应用系统的内存需求重新配置至少一个队列。
根据本发明的另一方面,提供了一种内存管理装置,包括:
配置单元,用于根据应用系统的内存需求配置至少一个队列,不同队列管理不同尺寸的内存块,各队列管理的内存块尺寸由所述内存需求确定,所述应用系统中包含至少一个应用;
存储单元,用于将所述应用系统已释放且未被回收的内存块按尺寸存储在对应的队列中;
分配单元,用于当所述应用系统中的应用发起内存块申请时,在所述各队列中查找与申请的内存块尺寸匹配的内存块并分配给所述应用。
较优的,所述配置单元,进一步用于为所述应用系统配置内存量大于所述应用系统的内存需求的内存堆;
所述分配单元,进一步用于在所述内存堆中分割与所述申请的内存块尺寸匹配的内存块,并分配给所述应用。
较优的,所述分配单元,进一步用于若所述内存堆中剩余内存量小于所述申请的内存块尺寸时,通知所述应用申请失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010529424.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型三角皮带轮
- 下一篇:带有轴承防护装置的丝杠