【技术实现步骤摘要】
一种计算机内存管理方法、装置、设备及存储介质
本专利技术涉及计算机操作系统领域,尤其涉及一种计算机内存管理方法、装置、设备及存储介质领域。
技术介绍
当前嵌入式操作系统的内核堆由于存在不断的分配和释放,导致堆本身可能存在很多内存碎片,这些碎片不连续,如图1A中示出的空闲内存碎片分布。这些空闲碎片不能满足分配更大空间的需求,从而导致堆空间不能被充分使用。分配的堆空间本身带有堆管理数据结构,实际使用的空间总是小于分配的空间,并不是全空间使用。如图1B示出的分配的内存空间结构图,分配的堆空间的起始地址包括堆管理数据结构的数据。
技术实现思路
有鉴于此,本专利技术实施例提供了一种计算机内存管理方法、装置、设备及存储介质,通过梯级式的内存管理链表,对空闲内存块实现按其大小匹配的梯级存放,仅根据所需内存大小分配内存,并对物理地址相邻的空闲内存块进行归并,减少内存碎片,从而实现无损内存管理。第一方面,本专利技术实施例提供了一种计算机内存管理方法,包括:配置各类型的内存管理链表,每种类型的内存管理链表包括若干梯级顺序增加的内存梯级链表,内存梯级链表的梯级越高,其存放的空闲内存块越大;根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方;基于系统堆使用方类型和所释放内存大小把所释放内存加入到相应类型的内存管理链表的梯级匹配的内存梯级链表中。由上,基于梯级分类的内存梯级链表快速查找满足所需内存大小的最小空闲内存块,且 ...
【技术保护点】
1.一种计算机内存管理方法,其特征在于,包括:/n配置系统堆各类型的内存管理链表,每种类型的内存管理链表包括若干梯级的相应类型的内存梯级链表,内存梯级链表的梯级越高,其存放的空闲内存块越大;/n根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方;/n基于系统堆使用方的类型和所释放内存大小把所释放内存加入到相应类型的内存管理链表的梯级匹配的内存梯级链表中。/n
【技术特征摘要】
1.一种计算机内存管理方法,其特征在于,包括:
配置系统堆各类型的内存管理链表,每种类型的内存管理链表包括若干梯级的相应类型的内存梯级链表,内存梯级链表的梯级越高,其存放的空闲内存块越大;
根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方;
基于系统堆使用方的类型和所释放内存大小把所释放内存加入到相应类型的内存管理链表的梯级匹配的内存梯级链表中。
2.根据权利要求1所述方法,其特征在于,所述内存管理链表的类型包括内核字节堆、用户字节堆和页堆,其中,页堆内存梯级链表的最小梯级大于内核字节堆内存梯级链表的最大梯级或用户字节堆内存梯级链表的最大梯级。
3.根据权利要求2所述方法,其特征在于,所述根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方,包括:
根据调用的系统堆接口的类型确定相应类型的内存梯级链表,并从中基于所需内存大小确定对应梯级的内存梯级链表;
从所述对应梯级的内存梯级链表开始,基于梯级递增方向在相应类型的内存管理链表中查找满足需求的第一空闲内存块;
基于所需内存大小,从第一空闲内存块中选择第二空闲内存块分配给系统堆调用方,第二空闲内存块为与所需内存大小梯级匹配的内存块。
4.根据权利要求3所述方法,其特征在于,所述根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方,还包括:
分配完第二空闲内存块后,当第一空闲内存块中还存在剩余内存块时,基于所述剩余内存块的空间大小,把所述剩余内存块加入到梯级匹配的对应类型的内存梯级链表里。
5.根据权利要求2所述方法,其特征在于,还包括:
把内核字节堆内存管理链表中物理地址相邻的空闲内存块进行归并,把归并后的空闲内存块存入到梯级匹配的内核字节堆内存管理链表或页堆内存管理链表中;
把页堆内存管理链表中物理地址相邻空闲的内存块进行归并,把归并后的空闲内存块存入到梯级匹配的页堆内存管理链表中。
6.根据权利要求3或4所述方法,其特征在于,当调用的系统堆接口类型为用户字节堆分配接口时,所述根据调用的系统堆接口的类型和所需内存大小,从相应类型的内存管理链表的内存梯级链表中按照梯级查找并分配大小匹配的内存块给系统堆调用方,还包括:
所需内存大小包括堆管理数据结构的空间大小和用户程序需求内存大小;
在第二空闲内存块的起始地址存入所述堆管理数据结构;其中,所述堆管理数据结构至少包括第二空闲内存块的大小和起始地址。
...
【专利技术属性】
技术研发人员:李燕,
申请(专利权)人:科东广州软件科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。