【技术实现步骤摘要】
资源分配结构、内存管理方法和内存管理系统
[0001]本专利技术涉及内存管理
,尤其是涉及一种资源分配结构、内存管理方法和内存管理系统。
技术介绍
[0002]现有技术中通常使用malloc函数(memory allocation,动态内存分配函数)对内存进行管理。malloc函数返回的指针是虚拟地址,需要经过多次地址译码才能变为真实的物理地址。当进行不断申请释放后,内存会变为很多的小片段,使得所申请的空间在物理上是分散的。对其进行访问时需要类似于链表的访问方式,从开始位置一个一个结点的查询,直到查询到目标位置为止,需要占用大量时间,CPU(中央处理器,Central Processing Unit)工作效率较低。此外,通过malloc函数申请的内存空间只能一次性释放,导致占用大量的内存空间。
技术实现思路
[0003]有鉴于此,本专利技术的目的在于提供一种资源分配结构、内存管理方法和内存管理系统,可以提升CPU访问内存的效率,同时节约内存空间。
[0004]第一方面,本专利技术实施例提供了一种 ...
【技术保护点】
【技术特征摘要】
1.一种资源分配结构,其特征在于,所述资源分配结构包括:至少一个结点管理模块,以及分别与所述结点管理模块相连的链表结点分配模块、剩余空间计算模块、链表编号管理模块和物理地址计算模块;所述结点管理模块彼此相互独立;所述链表结点分配模块,用于判断任意结点的结点编号是否被使用,当新链表产生时,提供未被使用的结点编号供所述新链表使用;所述剩余空间计算模块,用于判断当前链表是否满足所述新链表的需求;所述链表编号管理模块,用于判断任意链表的链表编号是否被使用,当所述新链表产生时,提供未被使用的链表编号供所述新链表使用;所述物理地址计算模块,用于当接收到地址查询或结点查询请求时,接收所述结点管理模块发送的反馈信号,并将所述反馈信号由独热编码译码转换为物理地址;所述结点管理模块,用于当进行结点操作时,每个所述结点管理模块同步确定需要执行的操作,并独立执行相应的操作;所述结点操作包括创建新链表、查询结点、释放链表和释放结点。2.根据权利要求1所述的资源分配结构,其特征在于,所述结点管理模块包括结点状态值触发器、链表编号触发器和结点位置触发器;所述结点状态值触发器,用于记录当前结点的状态值,以判断当前结点对应的当前结点管理模块是否被链表使用;所述链表编号触发器,用于记录所述当前结点管理模块所属的当前链表的链表编号;所述结点位置触发器,用于记录所述当前结点管理模块在所述当前链表中的结点位置。3.一种内存管理方法,其特征在于,应用于权利要求1
‑
2任一项所述的资源分配结构;所述方法包括:获取当前链表的操作信息;其中,所述操作信息包括链表申请、结点查询、链表释放和结点释放中的至少一种;将所述操作信息发送至所述资源分配结构的每个结点管理模块,以使每个所述结点管理模块同步确定需要执行的操作,并独立执行相应的操作。4.根据权利要求3所述的内存管理方法,其特征在于,所述操作信息为所述链表申请;将所述操作信息发送至所述资源分配结构的每个结点管理模块,以使每个所述结点管理模块同步确定需要执行的操作,并独立执行相应的操作的步骤,包括:获取待创建链表的内存空间大小;根据所述内存空间大小确定所述待创建链表对应的结点管理模块的第一数量;获取还未被使用的结点管理模块的第二数量,如果所述第一数量小于或等于所述第二数量,将还未被使用的链表编号确定为所述待创建链表的第一链表编号;基于链表结点分配模块,获取每个所述结点管理模块的当前结点状态值和结点编号,确定所述当前结点状态值为1,且所述结点编号满足预设要求的结点管理模块为所述待创建链表对应的待创建结点管理模块;将所述待创建结点管理模块的当前链表编号确定为所述第一链表编号;其中,所述链表结点分配模块设置在所述资源分配结构上。5.根据权利要求4所述的内存管理方法,其特征在于,所述获取还未被使用的所述结点
管理模块的第二数量,如果所述第一数量小于或等于所述第二数量,将还未被使用的链表编号确定为所述待创建链表的第一链表编号的步骤,包括:基于剩余空间计算模块,获取每个所述结点管理模块的所述当前结点状态值,确定所有所述当前结点状态值之和为所述第二数量;如果所述第一数量小于或等于所述第二数量,基于链表编号管理模块,获取所述资源分配结构中每个链表编号对应的当前触发器参数;将所述当前触发器参数为0的所述链表编号确定为所述还未被使用的链表编号;将满足预设规则的所述还未被使用的链表编号确定为所述第一链表...
【专利技术属性】
技术研发人员:周强,叶云杰,王斐,
申请(专利权)人:深圳市德明利技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。