【技术实现步骤摘要】
一种内存资源分配方法及装置
本专利技术涉及计算机
,尤其涉及一种内存资源分配方法及装置。
技术介绍
目前,存储设备中各个模块对内存的使用都是通过调用PLMM(PlatformMemoryManage平台内存管理)模块的相关接口来实现的,在该PLMM模块中存在父子资源池的关系,如图1所示,在初始化时,某一类资源全部分配在父池中,子池资源的分配为空,接着,在后续使用中资源根据需要分配在父池与所有子池中,使得分配后的父池的资源和所有子池的资源相加为初始化时父池中的资源。在需要在父池中申请使用资源,但是此时父池中恰好没有资源,需要循环遍历父池中所有子池中的资源来获得所需的资源时,往往会造成某些子池中的资源访问失败的情况。因此,如何有效地获取内存资源是目前亟待解决的技术问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的内存资源分配方法及装置。第一方面,本专利技术提供了一种内存资源分配方法,内存中包括资源池,父池和多个子池,包括:建立 ...
【技术保护点】
1.一种内存资源分配方法,内存中包括资源池,父池和多个子池,其特征在于,包括:/n建立所述父池所对应的所述多个子池的链表,所述链表中包括所述多个子池的指向顺序;/n创建一变量,初始为空;/n在所述父池中获取预设容量的资源且所述父池中的可用资源的容量小于所述预设容量时,获取所述预设容量与所述父池中的可用资源的容量的容量差,作为目标容量;/n基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池;/n将所述当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源。/n
【技术特征摘要】
1.一种内存资源分配方法,内存中包括资源池,父池和多个子池,其特征在于,包括:
建立所述父池所对应的所述多个子池的链表,所述链表中包括所述多个子池的指向顺序;
创建一变量,初始为空;
在所述父池中获取预设容量的资源且所述父池中的可用资源的容量小于所述预设容量时,获取所述预设容量与所述父池中的可用资源的容量的容量差,作为目标容量;
基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池;
将所述当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源。
2.如权利要求1所述的方法,其特征在于,所述基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池,包括:
判断所述变量当前是否为空;
在为空时,访问所述链表中的第一个子池,并将所述第一个子池赋值给所述变量;
在不为空时,基于所述变量的值,获取所述变量的值对应的子池在所述链表中所指向的第一目标子池,并访问所述第一目标子池,将所述第一目标子池赋值给所述变量。
3.如权利要求2所述的方法,其特征在于,所述将当前访问的子池的资源交给所述父池,直到所述父池获得所述目标容量的资源,包括:
判断所述当前访问的子池中的可用资源的容量是否大于或等于所述目标容量;
在大于或等于时,将所述当前访问的子池中的可用资源交给所述父池,以使所述父池获得所述目标容量的资源;
在小于时,将所述当前访问的子池中的可用资源交给所述父池之后,再对所述链表中的所述当前访问的子池所指向的第二目标子池进行访问,将所述第二目标子池赋值给所述变量,直到所述父池获得所述目标容量的资源。
4.如权利要求1所述的方法,其特征在于,基于所述变量,以及所述链表,按照所述链表中所述多个子池的指向顺序对所述多个子池依次进行访问,并通过所述变量记录当前访问的子池之前,还包括:
判断是否有子池被删除;
若是,判断所述变量所记录的当前访问的子池是否是被删除的子池;
若是,则将所述链表中所述被删除的子池所指向的第三目标子池赋值给所述变量,并修改所述链表;
若否,则将所述变量保持不变。
5.如权利要求4所述的方法,其特征在于,所述修改所述链表,包括:...
【专利技术属性】
技术研发人员:李俭,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。