[发明专利]一种内存资源分配方法及装置有效
申请号: | 202010944811.2 | 申请日: | 2020-09-10 |
公开(公告)号: | CN112181637B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 李俭 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 原婧 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 资源 分配 方法 装置 | ||
本发明涉及计算机技术领域,尤其涉及一种内存资源分配方法及装置,该方法包括:建立父池所对应的多个子池的链表,链表中包括多个子池的指向顺序;创建一变量,初始为空;在父池中获取预设容量的资源且父池中的可用资源的容量小于预设容量时,获取预设容量与父池中的可用资源的容量的容量差,作为目标容量;基于变量,以及链表,按照链表中多个子池的指向顺序对多个子池依次进行访问,并通过变量记录当前访问的子池;将当前访问的子池的资源交给父池,直到父池获得目标容量的资源,由于采用变量对当前访问的子池进行记录,能够确保每次访问不同的子池,因而能够遍历所有子池,以确保父池能够成功获取到子池的可用资源,从而有效对资源进行分配。
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存资源分配方法及装置。
背景技术
目前,存储设备中各个模块对内存的使用都是通过调用PLMM(Platform MemoryManage平台内存管理)模块的相关接口来实现的,在该PLMM模块中存在父子资源池的关系,如图1所示,在初始化时,某一类资源全部分配在父池中,子池资源的分配为空,接着,在后续使用中资源根据需要分配在父池与所有子池中,使得分配后的父池的资源和所有子池的资源相加为初始化时父池中的资源。
在需要在父池中申请使用资源,但是此时父池中恰好没有资源,需要循环遍历父池中所有子池中的资源来获得所需的资源时,往往会造成某些子池中的资源访问失败的情况。
因此,如何有效地获取内存资源是目前亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的内存资源分配方法及装置。
第一方面,本发明提供了一种内存资源分配方法,内存中包括资源池,父池和多个子池,包括:
建立所述父池所对应的所述多个子池的链表,所述链表中包括所述多个子池的指向顺序;
创建一变量,初始为空;
在所述父池中获取预设容量的资源且所述父池中的可用资源的容量小于所述预设容量时,获取所述预设容量与所述父池中的可用资源的容量的容量差,作为目标容量;
基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池;
将所述当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源。
进一步地,所述基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池,包括:
判断所述变量当前是否为空;
在为空时,访问所述链表中的第一个子池,并将所述第一个子池赋值给所述变量;
在不为空时,基于所述变量的值,获取所述变量的值对应的子池在所述链表中所指向的第一目标子池,并访问所述第一目标子池,将所述第一目标子池赋值给所述变量。
进一步地,所述将当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源,包括:
判断所述当前访问的子池中的可用资源的容量是否大于或等于所述目标容量;
在大于或等于时,将所述当前访问的子池中的可用资源交给所述父池,以使所述父池获得所述目标容量的资源;
在小于时,将所述当前访问的子池中的可用资源交给所述父池之后,再对所述链表中的所述当前访问的子池所指向的第二目标子池进行访问,将所述第二目标子池赋值给所述变量,直到所述父池获得所述目标容量的资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010944811.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能变电站
- 下一篇:一种超声辅助3D打印混凝土喷嘴装置及挤出系统