[发明专利]一种内存分配的方法、系统有效
申请号: | 201710967200.8 | 申请日: | 2017-10-17 |
公开(公告)号: | CN107844372B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 李绍良;黄衍博;黄春豪 | 申请(专利权)人: | 广东睿江云计算股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 佛山市禾才知识产权代理有限公司 44379 | 代理人: | 梁永健 |
地址: | 528000 广东省佛山市禅城区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 方法 系统 | ||
1.一种内存分配的方法,包括适配器、二叉树和二维数组,所述二叉树的节点标记内存块的使用状态,所述二叉树分为x层,所述二叉树的根节点位于所述二叉树的第一层;所述二叉树的第y层上的每一个所述节点都存储有2^(x-y)大小的所述内存块,y大于零且小于等于x;所述二维数组存储有未分配节点的信息;
其特征在于:包括所述适配器分配内存的过程:
步骤A:所述适配器获取程序所申请的内存值,然后所述适配器从所述二叉树的根节点向下开始遍历,在所述节点中寻找可分配的所述内存块;
步骤B:在所述节点中寻找与所述内存值相同大小的可分配的所述内存块,若找到,则将找到的所述内存块分配给所述内存值,将该所述节点标记为已分配状态,并返回内存地址;
若找不到,则寻找比所述内存值大的可分配的所述内存块,将寻找到所述内存块分配给所述内存值,并将该所述节点标记为已分配状态,然后返回内存地址;
步骤C:最后将比所述内存值大的所述内存块分配后还剩下的所述内存块存储到所述未分配节点中,并将所述未分配节点在所述二叉树中的信息存储到所述二维数组中;
步骤D:若找不到与所述内存值相同或者比所述内存值大的可分配的所述内存块,则遍历所述二维数组,将所述未分配节点找出来,统计所有所述未分配节点上的所述内存块,若统计的所述内存块比所述内存值大,则将所述未分配节点上的所述内存块进行合并,然后再分配给所述内存值,并将合并的所述未分配节点标记为已分配状态,返回内存地址;
若统计的所述内存块比所述内存值小,则返回内存不足,请求分配失败的信息;
包括了所述适配器给找不到与所述内存块相同或者大于所述内存块的所述内存值分配内存的过程:
步骤D1:当所述适配器找不到跟所述内存值相同或者大于所述内存值的所述内存块时,所述适配器便会遍历所述二维数组,从所述二维数组寻找是否有所述未分配节点的信息;
步骤D2:若找到所述二维数组中有所述未分配节点的信息,则将所有所述未分配节点上的所述内存块统计起来,判断一个或者多个所述未分配节点上的所述内存块的合并是否足够分配内存;
步骤D3:若足够分配内存则将所述未分配节点上的所述内存块合并起来并分配内存;若不足够分配内存,则返回内存不足,请求分配失败;
所述二叉树的每一个所述节点都设置有索引n,所述索引n最小值为零,对应所述二叉树的根节点,后一个所述节点比前一个所述节点的索引n大1;
所述二维数组中设置有两个数组,第一个数组存储有所述二叉树的层数x,第二个数组存储有所述二叉树的所述节点的所述索引n;
包括了所述二维数组存储所述未分配节点的信息的过程:
步骤C1:所述适配器获取一个所述未分配节点在所述二叉树中的所述层数x,并将所述层数x存储到所述二维数组的第一个数组中;
步骤C2:接着所述适配器获取该已存好所述层数x的该所述未分配节点在所述二叉树中的所述索引n,并将所述索引n存储到所述二维数组的第二个数组中。
2.根据权利要求1所述一种内存分配的方法,其特征在于:包括所述适配器给与所述内存块相同或者大于所述内存块的所述内存值分配内存的过程:
步骤B1:所述适配器将所述内存值分解为2的最大次幂i加上一个余数;
步骤B2:判断所述余数是否不等于0,若所述余数等于0,则要分配的所述内存块大小为2的i次方,然后从所述二叉树的根节点向下开始遍历所述二叉树,寻找到存储有要分配的所述内存块的所述节点,并标记该所述节点为已分配状态,最后返回内存地址;
步骤B3:若所述余数不等于0,则要分配的内存块大小为2的(i+1)次方,然后从所述二叉树的根节点向下开始遍历所述二叉树,寻找到存储有要分配的所述内存块的的所述节点,并标记该所述节点为已分配状态,返回内存地址;
再将分配完还剩下的所述内存块从小到大的顺序以的幂次方拆分,添加到所述未分配节点中去,并将所述未分配节点在所述二叉树中的信息添加到所述二维数组中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东睿江云计算股份有限公司,未经广东睿江云计算股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710967200.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:车辆用座椅滑动装置
- 下一篇:具有额外锁定构件的座椅调整器