[发明专利]内存管理方法和装置在审
| 申请号: | 201910966469.3 | 申请日: | 2019-10-12 |
| 公开(公告)号: | CN112650577A | 公开(公告)日: | 2021-04-13 |
| 发明(设计)人: | 李轶;王波;辛旭 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 王明磊;刘芳 |
| 地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 内存 管理 方法 装置 | ||
1.一种内存管理方法,其特征在于,包括:
获取内存分配请求,所述内存分配请求用于申请内存;
根据所述内存分配请求在内存区域中分配待使用的内存块,并生成所述待使用的内存块的内存管理信息;其中,所述内存区域地址连续,所述待使用的内存块地址对齐且大小对齐;
将所述待使用的内存块的内存管理信息存储至预设内存块中;所述预设内存块与所述内存区域不重合,且用于存储所述内存区域中内存块的内存管理信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述内存分配请求在内存区域中分配待使用的内存块,包括:
根据所述内存区域的单位内存块的大小对所述内存区域进行内存分割,获得N个第一内存块;所述N个第一内存块地址对齐且大小对齐,N为正整数;其中,所述第一内存块的大小/所述单位内存块的大小=2的幂次方,
若所述N个第一内存块中存在至少一个空闲的第一内存块,则将其中一个空闲的第一内存块分配为所述待使用的内存块。
3.根据权利要求2所述的方法,其特征在于,所述内存区域地址对齐且大小对齐,所述根据所述内存区域的单位内存块的大小对所述内存区域进行内存分割,获得N个第一内存块,包括:
对所述内存区域进行平均分割,获得两个大小相等的第一级内存块;
判断所述第一级内存块的大小除以所述内存分配请求申请的内存的大小的商是否大于1;
若大于1,则对至少一个所述第一级内存块执行上述平均分割以及判断的步骤,直至分割获得的内存块的大小除以所述内存分配请求申请的内存的大小的商等于1,将所述分割获得的内存块确定为所述N个第一内存块。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取内存释放请求,所述内存释放请求用于请求释放所述内存区域中已占用的内存块;
根据所述内存释放请求释放所述已占用的内存块。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述已占用的内存块的伙伴内存块是否空闲;所述已占用的内存块的伙伴内存块与所述已占用的内存块为通过对同一个内存块进行内存分割后得到的,或者,所述已占用的内存块的伙伴内存块与所述已占用的内存块为地址相邻的内存块;
若空闲,则对所述已占用的内存块和所述已占用的内存块的伙伴内存块进行内存合并,获取合并后的内存块,并对所述合并后的内存块重复执行上述内存合并的步骤,直至不能进行内存合并为止,获取合并内存块,并生成所述合并内存块的内存管理信息;
将所述合并内存块的内存管理信息存储至所述预设内存块中。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述内存块的内存管理信息包括:所述内存块的索引值、空闲指示信息和所述内存块的大小;其中,空闲指示信息用于指示所述内存块是否空闲。
7.根据权利要求6所述的方法,其特征在于,所述内存块的内存管理信息还包括所述内存块的伙伴内存块的索引值;所述内存块的伙伴内存块与所述内存块为通过对同一个内存块进行内存分割后得到的,或者,所述内存块的伙伴内存块与所述内存块为地址相邻的内存块。
8.根据权利要求6所述的方法,其特征在于,还包括:
获取待查询的内存块的索引值;
根据所述待查询的内存块的索引值以及索引值与内存地址之间的对应关系,获得所述待查询的内存块的内存地址。
9.根据权利要求6所述的方法,其特征在于,还包括:
获取待查询的内存地址;
根据所述待查询的内存地址以及索引值与内存地址之间的对应关系,获得所述待查询的内存地址对应的内存块的索引值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910966469.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种污泥型煤组合物及其制备方法
- 下一篇:一种酸化油制低硫生物柴油的方法





