一种内存管理方法技术

技术编号:2842425 阅读:163 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种内存管理方法,先设定一个空闲内存块的最小单元,并定义多个块组,每个块组可包括多个大小不同的空闲内存块;使用时,维护每个块组当前所包括的所有空闲内存块的信息及每个内存块的大小和使用情况信息;收到内存分配请求后,确定能满足该请求的最小空闲内存块,然后在可能具有满足该请求的空闲内存块的块组中寻找一个可满足该请求的空闲内存块,如找到的空闲内存块大小等于该最小空闲内存块,则直接将其分配给用户并更新相关信息,否则将其拆分为最小空闲内存块和剩余部分构成的内存块,将最小空闲内存块分配给用户,并更新该两个内存块的信息及其所属块组的空闲内存块的信息。本发明专利技术方法能够有效地提高内存的使用效率。

【技术实现步骤摘要】

本专利技术涉及,尤其涉及一种数据通信设备中的内存管理方法
技术介绍
数据通信设备支持的业务种类非常众多,而各种业务种类的数据结构内存特征大小各不相同。为了满足各种内存特征大小的申请、释放操作,通常使用一种经典的内存管理方法—伙伴算法。该算法将空闲内存分为多个块组,每组中块的大小为2的幂次方字节,比如第0组中块的大小都为32字节,第1组中块的大小都为64字节,第n组中块的大小都为32*2^n字节。也就是说,每一组中块的大小都相同且这些相同大小的块形成一个链表。当申请65字节内存时,该算法先从128字节的块组的空闲链表中寻找,看是否存在空闲块。如果有就直接分配;如果没有就继续查找下一个更大的块。具体地说,就是在256字节的块组的空闲链表中寻找,如果存在这样的空闲块,将该空闲块分为两等份,一份分配出去,另一份插入到128字节块组的空闲链中。如果256字节的块组也没有空闲块,则继续找更大的块组,即512字节的块组。如果存在空闲块,则将512字节分配出128字节,剩余384字节分为256字节插入256字节块组和128字节插入128字节块组。以此类推。如果最大块组还没有空闲块则放弃分配。内本文档来自技高网...

【技术保护点】
一种内存管理方法,包括下述步骤:(a)设定一个最小单元,使空闲内存块的大小均为该最小单元p倍,p为正整数,同时定义多个块组,每个块组对应于一个用内存大小标识的区间且各区间互不重叠,每个块组可包括多个大小不同的空闲内存块;(b )使用时,将内存划分为一个或多个空闲内存块,在内存中维护每个块组当前所包括的空闲内存块的信息,以及每个内存块的大小和使用情况的信息;(c)内存管理模块收到内存分配请求后,确定能满足该请求的最小空闲内存块的大小,然后从那些可能具有该最 小空闲内存块或更大空闲内存块的块组中寻找一个能满足该请求的空闲内存块进行分配,如找到,执行下一步...

【技术特征摘要】

【专利技术属性】
技术研发人员:张应平沈晓峰
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1