[发明专利]一种内存管理方法在审
| 申请号: | 201310261039.4 | 申请日: | 2013-06-27 |
| 公开(公告)号: | CN103324579A | 公开(公告)日: | 2013-09-25 |
| 发明(设计)人: | 冯明 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司;上海万得凯实业有限公司 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 201616 上海市松江*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 内存 管理 方法 | ||
技术领域
本发明涉及内存管理技术领域,特别是涉及一种内存管理方法。
背景技术
嵌入式系统的广泛应用,如何对嵌入式系统的内存进行高效管理已成为研发人员的研究热点。
在嵌入式系统中,内存使用存在申请频繁,使用内存块大小不均等问题,在系统长期运行后,会出现系统内存碎片化、内存申请释放效率低等问题,同时在内存操作出现异常时,极易导致系统崩溃。本发明通过对交换机等产品系统内存使用的情况分析,提出一种申请的方案,提高内存使用的效率,避免出现内存碎片化,并提供内存检查、统计分析。
发明内容
基于此,有必要提供一种内存使用效率高的内存管理方法。
一种内存管理方法,包括:
将内存划分为一阶以上的内存池和系统内存堆;
申请内存时,根据申请内存大小确定出阶内存池,并根据阶内存池空闲链表为内存申请分配内存;
释放内存时,根据需释放内存的内存链表,对内存进行释放。
在其中一个实施例中,所述申请内存时,根据申请内存大小确定出阶内存池,并根据内存池空闲链表为内存申请分配内存为:
根据申请内存大小确定出阶内存池;
若阶内存池空闲链表为空,则向系统内存堆申请,否则向阶内存池空闲链表申请。
在其中一个实施例中,若确定出的阶内存池大于最大阶内存池,则申请内存失败。
在其中一个实施例中,申请内存时,内存大小包括内存标识和实际使用两部分之和。
在其中一个实施例中,所述内存标识包括内存头、内存尾、前哨兵以及后哨兵。
在其中一个实施例中,所述释放内存时,根据需释放内存的内存链表,对内存进行释放为:
检查内存头是否被改写,若是,则终止释放;
检查前哨兵是否越界,若是,则终止释放;
检查内存尾是否被改写,若是,则终止释放;
检查后哨兵是否越界,若是,则终止释放。
在其中一个实施例中,还包括:
若内存是由阶内存池空闲链表申请的,则将内存从内存链表移出,移入阶内存次空闲链表。
在其中一个实施例中,还包括:
若内存是由系统内存堆申请的,则将内存从内存链表移出,移入阶内存次空闲链表或者释放回系统内存堆。
在其中一个实施例中,根据内存链表和阶内存池空闲链表监控内存使用情况。
采用本发明的方法后,内存分为一阶以上内存池和系统内存堆两部分,内存申请时,在阶内存池没有空闲内存块时,不向高阶内存池申请,而是向系统内存堆申请,使用效率高。
附图说明
图1为本发明一实施例提供的内存管理方法的流程图;
图2为图1中步骤200的具体方法流程图;
图3为图1中步骤300的具体方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参阅图1,本发明提供的一个实施例的内存管理方法,包括:
步骤S100,将内存划分为一阶以上的内存池和系统内存堆;
将内存分为两部分,一部分划分为一阶以上的内存池,一部分为系统内存堆。内存申请时,在阶内存池没有空闲内存块时,向高阶内存池申请,造成内存的使用效率不高。分成两部分时,在阶内存池没有空闲内存块时,向系统内存堆申请,使用效率高。
步骤S200,申请内存时,根据申请内存大小确定出阶内存池,并根据阶内存池空闲链表为内存申请分配内存;
具体的,参阅图2,包括:
步骤S201,根据申请内存大小确定出阶内存池;
步骤S202,判断阶内存池空闲链表是否为空;
步骤S203,若阶内存池空闲链表为空,则向系统内存堆申请;
步骤S204,若阶内存池空闲链表不为空,则向阶内存池空闲链表申请。
当根据申请内存的大小确定出的阶内存池大于最高阶内次池,则申请内存失败。
步骤S300,释放内存时,根据需释放内存的内存链表,对内存进行释放。
申请内存时,内存大小包括内存标识和实际使用两部分,假设需要使用10M内存,申请时,还必须加上内存标识占的内存。内存标识包括内存头、内存尾、前哨兵以及后哨兵。
具体的,参阅图3,包括:
步骤S301,检查内存头是否被改写,若是跳到步骤S305;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司;上海万得凯实业有限公司,未经上海斐讯数据通信技术有限公司;上海万得凯实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310261039.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:远程控制手持设备的开锁权限
- 下一篇:一种异步电动机的接线盒





