[发明专利]堆内存管理方法、装置、可读存储介质及电子设备有效
申请号: | 202011508383.5 | 申请日: | 2020-12-18 |
公开(公告)号: | CN112667152B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 孙成思;孙日欣;胡伟;高嵊昊 | 申请(专利权)人: | 成都佰维存储科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 深圳市博锐专利事务所 44275 | 代理人: | 张鹏 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 装置 可读 存储 介质 电子设备 | ||
1.一种堆内存管理方法,其特征在于,包括步骤:
建立连续比特位查询表;
根据待管理的堆内存大小,建立索引位图,所述索引位图每一比特位的初始值为第一标识;
接收堆内存分配请求,根据所述连续比特位查询表、所述索引位图和请求分配的堆内存的大小,确定与所述请求分配的堆内存的大小匹配的堆内存的地址,并用第二标识标记所述请求分配的堆内存的地址对应的索引位图比特位;
所述第一标识与所述第二标识不同;
所述根据待管理的堆内存大小,建立索引位图包括:
设置所述索引位图中一个比特位对应的预设内存大小,根据所述待管理的堆内存大小和所述预设内存大小,计算所述索引位图的字节数,根据所述字节数建立所述索引位图;
所述根据所述连续比特位查询表、所述索引位图和请求分配的堆内存的大小,确定与所述请求分配的堆内存的大小匹配的堆内存的地址包括:
将所述请求分配的堆内存的大小按照所述预设内存大小取整,计算所述请求分配的堆内存的大小需要的连续比特位数量,根据所述连续比特位查询表,判断所述索引位图选择的当前字节中是否存在值为所述第一标识的目标连续比特位的连续比特位数量满足所述需要的连续比特位数量,若是,则获取所述目标连续比特位,若否,则对所述索引位图的下一字节进行上述判断,直至找到满足所述需要的连续比特位数量的目标连续比特位,根据所述目标连续比特位确定与所述堆内存的大小匹配的堆内存的地址;
所述连续比特位查询表包括低位连续比特位数量、高位连续比特位数量和中间连续最大比特位数量;
所述低位连续比特位数量为待查询的预设长度的比特数组中从低比特位开始为所述第一标识的连续比特位数量;
所述高位连续比特位数量为待查询的预设长度的比特数组中从高比特位开始为所述第一标识的连续比特位数量;
所述中间连续最大比特位数量为待查询的预设长度的比特数组中两端为所述第二标识、中间为所述第一标识的比特块中所述第一标识的最大连续比特位数量;
所述判断所述索引位图选择的当前字节中是否存在值为所述第一标识的目标连续比特位的连续比特位数量满足所述需要的连续比特位数量包括:
判断上一字节中所述高位连续比特位数量加当前字节中所述低位连续比特位数量是否大于或者等于所述需要的连续比特位数量,当当前字节为所述索引位图的第一个字节时,所述上一字节中所述高位连续比特位数量的值为零,若大于或者等于,则确定存在值为所述第一标识的目标连续比特位的连续比特位数量满足所述需要的连续比特位数量,若小于,则判断当前字节中是否全为所述第一标识;
若是,则将上一字节中所述高位连续比特位数量加八,进入下一字节,并返回执行判断上一字节中所述高位连续比特位数量加当前字节中所述低位连续比特位数量是否大于或者等于所述需要的连续比特位数量操作,若否,则判断当前字节中所述中间连续最大比特位数量是否大于或者等于所述需要的连续比特位数量;
若大于或者等于,则确定存在值为所述第一标识的目标连续比特位的连续比特位数量满足所述需要的连续比特位数量,若小于,则判断当前字节中所述高位连续比特位数量是否大于或者等于所述需要的连续比特位数量;
若大于或者等于,则确定存在值为所述第一标识的目标连续比特位的连续比特位数量满足所述需要的连续比特位数量,若小于,则进入下一字节,返回执行判断上一字节中所述高位连续比特位数量加当前字节中所述低位连续比特位数量是否大于或者等于所述需要的连续比特位数量操作,直至找到满足所述需要的连续比特位数量的目标连续比特位。
2.根据权利要求1所述的一种堆内存管理方法,其特征在于,所述获取所述目标连续比特位包括:
获取所述目标连续比特位的高位地址比特位位置以及所述目标连续比特位的比特位数量;
所述根据所述目标连续比特位确定与所述请求分配的堆内存的大小匹配的堆内存的地址包括:
根据所述目标连续比特位的高位地址比特位位置、所述目标连续比特位数量和所述预设内存大小确定与所述堆内存的大小匹配的堆内存的地址:
与所述请求分配的堆内存的大小匹配的堆内存的地址=堆内存的起始地址+(查询到的连续比特位的高位地址比特位位置-查询到的连续比特位数量)*预设内存大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都佰维存储科技有限公司,未经成都佰维存储科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011508383.5/1.html,转载请声明来源钻瓜专利网。