[发明专利]内存碎片管理系统及方法有效
申请号: | 201710119705.9 | 申请日: | 2017-03-02 |
公开(公告)号: | CN108536609B | 公开(公告)日: | 2022-02-22 |
发明(设计)人: | 何三波 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 吴中伟 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 碎片 管理 系统 方法 | ||
1.内存碎片管理系统,其特征在于,包括:
管理模块,用于生成内存管理任务;以及为用户模块提供内存分配接口函数,在所述内存分配接口函数中增加一个参数-用户内存回收处理回调函数;
检测模块,用于在内存管理任务启动时,检测用户模块所分配的内存块中是否存在孤立块,并判断所述孤立块是否需要被释放,若需要被释放,则通知管理模块调用该孤立块对应的用户内存回收处理回调函数;
用户模块,用于在进行内存分配时,在所分配内存中指定用户内存回收处理回调函数;以及在用户内存回收处理回调函数被调用后,重新分配一块内存保存孤立块中的数据,并将对孤立块内存的引用修改为对所述新分配的内存的引用,然后释放孤立块。
2.如权利要求1所述的内存碎片管理系统,其特征在于,所述用户模块还用于,在进行内存分配时,判断分配的内存小于一定阈值且内存中的数据在系统运行过程中可以搬移时,才在所分配内存中指定用户内存回收处理函数。
3.如权利要求1所述的内存碎片管理系统,其特征在于,所述在所分配内存中指定用户内存回收处理函数的方法为:
在所分配内存的管理头部新开辟一个字段用于保存用户内存回收处理函数。
4.如权利要求1所述的内存碎片管理系统,其特征在于,所述检测模块检测用户模块所分配的内存块中是否存在孤立块,并判断所述孤立块是否需要被释放的方法为:
若检测到某个已分配的内存块隔离了前后两个空闲内存块,则判定该已分配的内存块为孤立块,若孤立块所隔离的前后两个空闲内存块的大小之和为孤立块大小的n倍以上,则判定该孤立块需要被释放。
5.如权利要求1所述的内存碎片管理系统,其特征在于,所述用户模块还用于,在重新分配内存时,紧邻着已分配的大块内存后分配一块新的内存保存孤立块中的数据。
6.内存碎片管理方法,其特征在于,包括以下步骤:
a.在进行内存分配时,在所分配内存中指定用户内存回收处理回调函数;
b.在内存管理任务启动时,检测所分配的内存块中是否存在孤立块,并判断所述孤立块是否需要被释放,若需要被释放,则调用该孤立块对应的用户内存回收处理回调函数;
c.在用户内存回收处理回调函数被调用后,重新分配一块内存保存孤立块中的数据,并将对孤立块内存的引用修改为对所述新分配的内存的引用,然后释放孤立块。
7.如权利要求6所述的内存碎片管理方法,其特征在于,步骤a中,在进行内存分配时,判断分配的内存小于一定阈值且内存中的数据在系统运行过程中可以搬移时,才在所分配内存中指定用户内存回收处理函数。
8.如权利要求6所述的内存碎片管理方法,其特征在于,所述在所分配内存中指定用户内存回收处理函数的方法为:
在所分配内存的管理头部新开辟一个字段用于保存用户内存回收处理函数。
9.如权利要求6所述的内存碎片管理方法,其特征在于,步骤b中,检测所分配的内存块中是否存在孤立块,并判断所述孤立块是否需要被释放的方法为:
若检测到某个已分配的内存块隔离了前后两个空闲内存块,则判定该已分配的内存块为孤立块,若孤立块所隔离的前后两个空闲内存块的大小之和为孤立块大小的n倍以上,则判定该孤立块需要被释放。
10.如权利要求6所述的内存碎片管理方法,其特征在于,步骤c中,在重新分配内存时,紧邻着已分配的大块内存后分配一块新的内存保存孤立块中的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710119705.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:页面版本测试方法及装置
- 下一篇:管理装置、信息处理装置以及管理方法