[发明专利]内存管理装置和方法有效
申请号: | 201580075454.8 | 申请日: | 2015-02-09 |
公开(公告)号: | CN107209716B | 公开(公告)日: | 2020-04-21 |
发明(设计)人: | 洪涛 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张耀光 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 装置 方法 | ||
1.一种内存管理装置,其特征在于,所述装置包括:
第一获取单元,用于获取预定大小的待分配内存;
创建单元,用于根据所述待分配内存创建共享内存池,所述共享内存池中包括将所述待分配内存划分得到的n个长度为预定长度的内存块,所述共享内存池用于提供至少两种不同长度的内存块的内存申请服务,所述至少两种不同长度中的每一种长度小于或等于所述预定长度,n≥2且n为正整数;
第二获取单元,用于获取内存申请所对应的需求长度,所述需求长度是所述至少两种不同长度中的一种;
分配单元,用于从所述共享内存池中获取一个长度为所述需求长度的内存块进行分配使用;
第三获取单元,用于获取需要释放的内存块对应的内存地址和长度;
检测单元,用于当所述需要释放的内存块的长度小于所述预定长度时,根据所述内存地址检测所述需要释放的内存块所属的目标内存块中的其它内存块是否空闲,所述目标内存块的长度是所述至少两种不同长度中的一种且所述目标内存块的长度大于所述需要释放的内存块的长度;
合并单元,用于当所述其它内存块空闲时,将所述需要释放的内存块和所述其它内存块合并为所述目标内存块,所述目标内存块的长度是所述至少两种不同长度中的一种。
2.根据权利要求1所述的装置,其特征在于,所述分配单元,具体用于:
检测所述共享内存池中是否存在空闲的且长度为所述需求长度的第一内存块;
若所述共享内存池中存在所述第一内存块,则将所述第一内存块进行分配使用。
3.根据权利要求2所述的装置,其特征在于,所述分配单元,具体还用于:
若所述共享内存池中不存在所述第一内存块,则从所述共享内存池中选取空闲的且长度大于所述需求长度的第二内存块;
将所述第二内存块划分为m个内存块,所述m个内存块中包含长度为所述需求长度的内存块,m≥2且m为整数;
从所述m个内存块中选取所述长度为所述需求长度的内存块进行分配使用。
4.根据权利要求3所述的装置,其特征在于,所述分配单元,具体还用于:
当所述共享内存池中存在至少两种不同长度的所述第二内存块时,从所述共享内存池中选取空闲的、长度大于且最接近于所述需求长度的第二内存块。
5.根据权利要求1至4任一所述的装置,其特征在于,所述至少两种不同长度的内存块包括w级不同长度的内存块,且第i+1级内存块的长度是第i级内存块的长度的q倍,第w级内存块的长度为所述预定长度,w≥2,1≤i≤w-1,q≥2且w、i、q均为整数。
6.一种内存管理装置,其特征在于,所述装置包括:控制器和寄存器;
所述寄存器用于存储一个或者一个以上的指令,所述指令用于实现一种内存管理方法;
所述方法包括:
获取预定大小的待分配内存;
根据所述待分配内存创建共享内存池,所述共享内存池中包括将所述待分配内存划分得到的n个长度为预定长度的内存块,所述共享内存池用于提供至少两种不同长度的内存块的内存申请服务,所述至少两种不同长度中的每一种长度小于或等于所述预定长度,n≥2且n为正整数;
获取内存申请所对应的需求长度,所述需求长度是所述至少两种不同长度中的一种;
从所述共享内存池中获取一个长度为所述需求长度的内存块进行分配使用;
获取需要释放的内存块对应的内存地址和长度;
当所述需要释放的内存块的长度小于所述预定长度时,根据所述内存地址检测所述需要释放的内存块所属的目标内存块中的其它内存块是否空闲,所述目标内存块的长度是所述至少两种不同长度中的一种且所述目标内存块的长度大于所述需要释放的内存块的长度;
若所述其它内存块空闲,则将所述需要释放的内存块和所述其它内存块合并为所述目标内存块,所述目标内存块的长度是所述至少两种不同长度中的一种;
所述控制器用于执行所述指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580075454.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:铁芯自动装配机
- 下一篇:一种碳糊电极生物传感器