[发明专利]一种内存管理的方法和装置无效
申请号: | 201110384804.2 | 申请日: | 2011-11-28 |
公开(公告)号: | CN102521139A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 薛康 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 | ||
技术领域
本发明涉及内存管理领域,尤其涉及一种内存管理的方法和装置。
背景技术
系统在运行中需要频繁的申请和释放内存,在长期的运行过程中,系统会产生大量的内存碎片,而当内存碎片数量达到一定程度时,由于零散的内存碎片太多,而内存碎片的空间太小,无法满足申请的内存,但是又因为大量内存碎片的存在,使得系统中有足够的内存空间,因此会造成空闲内存足够却申请不到内存的问题,影响了系统的稳定运行,需要进行内存碎片的整理。
现有技术对内存的整理主要是通过将已占用的内存进行移动,从而将已占用的内存归并到一起,但是内存移动后,程序依然从内存移动前的位置进行读取,从而造成内存整理后,程序访问内存出错或越界的问题。
发明内容
本发明的实施例提供一种内存管理的方法和装置,以解决现有技术中内存整理后,程序访问内存出错或越界的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
一种内存管理的方法,包括:
获取起始指针,所述起始指针指向距离内存的分配起始点最近的空闲内存;
获取第一指针,所述第一指针指向距离所述起始指针最近的已占用内存;
当所述第一指针没有指向内存终点时,锁住所述已占用内存,并向所述内存的分配起始点移动所述已占用内存中的内容,更新所述第一指针,解锁所述已占用内存,通过第二指针指向所述第一指针,所述第二指针用于访问所述已占用内存。
一种内存管理的方法,包括:
接收内存分配请求,所述内存分配请求中包含请求分配的内存大小;
当内存中存在一块连续空闲内存大于或等于所述请求分配的内存大小时,在所述内存中为所述内存分配请求分配第一内存,所述第一内存的大小等于所述请求分配的内存大小;
在所述内存的指针空间中保存第一指针,所述第一指针指向所述第一内存;
分配第二指针,所述第二指针指向所述的第一指针,用于访问所述第一内存。
一种内存管理的装置,包括:第一获取单元,第二获取单元和整理单元;
所述第一获取单元,用于获取起始指针,所述起始指针指向内存的分配起始点;
所述第二获取单元,用于获取第一指针,所述第一指针指向距离所述分配起始点最近的已占用内存;
所述整理单元,用于当所述第一指针没有指向内存终点时,锁住所述已占用内存,并向所述内存的分配起始点移动所述已占用内存中的内容,更新所述第一指针,解锁所述已占用内存,通过第二指针指向所述第一指针。
一种内存管理的装置,包括:
接收单元,用于接收内存分配请求,所述内存分配请求中包含请求分配的内存大小;
第一分配单元,用于在所述内存中为所述内存分配请求分配第一内存,所述第一内存的大小等于所述请求分配的内存大小,并在所述内存的指针空间中保存指向所述第一内存的指针;
第二分配单元,用于分配第二指针,所述第二指针指向所述的第一指针,用于访问所述第一内存。
本发明实施例提供一种内存管理的方法和装置,该方法包括:获取起始指针,所述起始指针指向距离内存的分配起始点最近的空闲内存,获取第一指针,所述第一指针指向距离所述起始指针最近的已占用内存,当所述第一指针没有指向内存终点时,锁住所述已占用内存,并向所述内存的分配起始点移动所述已占用内存中的内容,更新所述第一指针,解锁所述已占用内存,通过第二指针指向所述第一指针,所述第二指针用于访问所述已占用内存。这样,通过设置二级指针,将程序中访问内容的第二指针指向第一指针,而第一指针指向存储该内容的内存,这样在进行内存整理后,虽然存储该内容的内存空间发生变化,但是第二指针指向的仍然是第一指针,从而程序仍然可以正确访问该内容,从而解决了现有技术中内存整理后,程序访问内存出错或越界的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种内存管理的方法示意图;
图2为本发明实施例提供的另一种内存管理的方法示意图;
图3为本发明实施例提供的又一种内存管理的方法的流程示意图;
图4为本发明实施例提供的一种内存管理的装置的结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110384804.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可快速拆装的用于皮带输送机的分体式托辊
- 下一篇:一种运输铆钉的振动盘