[发明专利]一种内存资源分配方法及装置有效
申请号: | 202010944811.2 | 申请日: | 2020-09-10 |
公开(公告)号: | CN112181637B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 李俭 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 原婧 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 资源 分配 方法 装置 | ||
1.一种内存资源分配方法,内存中包括资源池,父池和多个子池,其特征在于,包括:
建立所述父池所对应的所述多个子池的链表,所述链表中包括所述多个子池的指向顺序;
创建一变量,初始为空;
在所述父池中获取预设容量的资源且所述父池中的可用资源的容量小于所述预设容量时,获取所述预设容量与所述父池中的可用资源的容量的容量差,作为目标容量;
基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池;
将所述当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源;
所述基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池,包括:判断所述变量当前是否为空;在为空时,访问所述链表中的第一个子池,并将所述第一个子池赋值给所述变量;在不为空时,基于所述变量的值,获取所述变量的值对应的子池在所述链表中所指向的第一目标子池,并访问所述第一目标子池,将所述第一目标子池赋值给所述变量。
2.如权利要求1所述的方法,其特征在于,所述将当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源,包括:
判断所述当前访问的子池中的可用资源的容量是否大于或等于所述目标容量;
在大于或等于时,将所述当前访问的子池中的可用资源交给所述父池,以使所述父池获得所述目标容量的资源;
在小于时,将所述当前访问的子池中的可用资源交给所述父池之后,再对所述链表中的所述当前访问的子池所指向的第二目标子池进行访问,将所述第二目标子池赋值给所述变量,直到所述父池获得所述目标容量的资源。
3.如权利要求1所述的方法,其特征在于,基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池之前,还包括:
判断是否有子池被删除;
若是,判断所述变量所记录的当前访问的子池是否是被删除的子池;
若是,则将所述链表中所述被删除的子池所指向的第三目标子池赋值给所述变量,并修改所述链表;
若否,则将所述变量保持不变。
4.如权利要求3所述的方法,其特征在于,所述修改所述链表,包括:
基于所述链表中指向所述当前访问的子池的第四目标子池以及所述当前访问的子池所指向的第五目标子池,将所述第四目标子池指向所述第五目标子池。
5.一种内存资源分配装置,在内存中包括资源池,父池和多个子池,其特征在于,包括:
建立模块,用于建立所述父池所对应的所述多个子池的链表,所述链表中包括所述多个子池的指向顺序;
创建模块,用于创建一变量,初始为空;
获取模块,用于在所述父池中获取预设容量的资源且所述父池中的可用资源的容量小于所述预设容量时,获取所述预设容量与所述父池中的可用资源的容量的容量差,作为目标容量;
访问模块,用于基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池;
获得模块,用于将所述当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源;
所述访问模块,具体用于:判断所述变量当前是否为空;在为空时,访问所述链表中的第一个子池,并将所述第一个子池赋值给所述变量;在不为空时,基于所述变量的值,获取所述变量的值对应的子池在所述链表中所指向的第一目标子池,并访问所述第一目标子池,将所述第一目标子池赋值给所述变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010944811.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能变电站
- 下一篇:一种超声辅助3D打印混凝土喷嘴装置及挤出系统