[发明专利]一种避免内存碎片化的内存分配方法无效
申请号: | 200610104291.4 | 申请日: | 2006-08-09 |
公开(公告)号: | CN101122883A | 公开(公告)日: | 2008-02-13 |
发明(设计)人: | 徐其龙 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 许志勇;颜涛 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种避免内存碎片化的内存分配方法,使内存申请者随时都可以申请到合适大小的内存块;在某种大小的内存存储块消耗完后,可以到大内存池中去申请,解决了申请不到内存而产生系统异常的问题;当申请大块内存时,可以在大的内存池中直接的分配,解决了传统方法的内存资源的浪费以及内存碎片的问题。 | ||
搜索关键词: | 一种 避免 内存 碎片 分配 方法 | ||
【主权项】:
1.一种避免内存碎片化的内存分配方法,其特征在于,包括如下步骤:(1)创建至少一个普通内存池,为每一个普通内存池向操作系统申请一定数量的内存块,所述每一个内存块由一个以上的大小相同的内存存储块组成;(2)创建一个大内存池,由操作系统中可提供申请的剩余内存组成,并在其中创建两个队列,一个是已分配内存队列,记录大内存池中已经分配的内存块的情况,另一个是未分配内存队列,记录大内存池中未分配内存的信息;(3)当应用申请内存时,判断当前申请的内存大小是否在普通内存池所能提供的内存块大小范围内,如果是,则在普通内存池中分配相应大小的空闲内存存储块给该应用,并将已经分配的内存存储块标记为已经占用;如果否,则查询所述未分配内存队列的记录,从大内存池中分配相应大小的内存块给该应用,并将该已分配信息记录入所述已分配内存队列;(4)当应用释放内存时,判断当前欲释放的内存块是从普通内存池,还是从大内存池中申请得到的,如果是从普通内存池中申请得到的,则取消对应内存存储块的占用标记;如果是从大内存池中分配得到的,则在未分配内存队列中查询该当前欲释放的内存块的前后相邻内存是否是未分配状态,并将其中处于未分配状态的相邻内存块与该欲释放的内存块合并为一个空闲的内存块,同时修改所述已分配内存队列的信息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200610104291.4/,转载请声明来源钻瓜专利网。
- 上一篇:磁浮列车长定子直线电机的定子段绕组换步方法
- 下一篇:具有能开合帽子的外套