[发明专利]一种内存管理方法及装置无效
申请号: | 201110273998.9 | 申请日: | 2011-09-15 |
公开(公告)号: | CN102999434A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 吕伟;邹磊;张振中 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存管理方法及装置。
背景技术
内存管理是应用程序运行时对计算机内存分配和使用的技术,其最主要的目的是高效、快速的分配内存,并且在适当的时候释放和回收内存。在计算机工程实践中,内存管理是一个不可回避的问题,经常需要频繁的分配和回收内存。在内存管理中引入了内存结点的概念,内存结点是指特定大小的一个内存块,而内存块是应用程序操作内存的基本单位。
现有技术中,常见的内存管理方案是使用两个链表实现内存分配和回收,一个链表管理已分配内存结点(UsedNode),称为已分配结点链表;另一个链表管理空闲内存结点(FreeNode),称为空闲结点链表。在分配内存时,从空闲结点链表上取下一个空闲内存结点使用,并将该取下的空闲内存结点放置到已分配结点链表上;在回收内存时,将已回收的内存结点从已分配结点链表上取下,放置到空闲结点链表上。如此将内存结点在空闲结点链表和已分配结点链表上转换达到内存管理的目的。
现有的内存管理方案,存在如下技术问题:
在管理内存的时候,需要维护和管理两个链表,每分配或者回收一个内存结点,都需要操作两个链表上的链指针,导致内存管理效率较低,并且两个链表的维护和管理在程序设计和实现时较为复杂。
发明内容
本申请提供一种内存管理方法及装置,用以解决现有技术中存在的内存管理效率较低的问题。
本申请提供的内存管理方法,维护一个由空闲内存结点链接而成的空闲结点链表,使用头指针指向空闲结点链表上首个空闲内存结点,使用尾指针指向空闲结点链表上末个空闲内存结点,使用链指针链接空闲结点链表上相邻的空闲内存结点,每一个链指针指向其链接的两个相邻的空闲内存结点中位置在后的空闲内存结点,所述方法包括:
在分配内存时,从空闲结点链表上获取空闲内存结点进行分配,并更改相关指针信息维护删除该分配的空闲内存结点之后的空闲结点链表;和/或,
在回收内存时,将回收的内存结点挂回到空闲结点链表上,并更改相关指针信息维护增加该回收的内存结点之后的空闲结点链表。
本申请提供的内存管理装置,包括:
第一指针存储单元,用于存储由空闲内存结点链接而成的空闲结点链表的头指针和尾指针,所述头指针用于指向空闲结点链表上首个空闲内存结点,所述尾指针用于指向空闲结点链表上末个空闲内存结点;
第二指针存储单元,用于存储链指针,所述链指针用于链接空闲结点链表上相邻的空闲内存结点,每一个链指针指向其链接的两个相邻的空闲内存结点中位置在后的空闲内存结点;
分配单元,用于在分配内存时,从空闲结点链表上获取空闲内存结点进行分配,并更改相关指针信息维护删除该分配的空闲内存结点之后的空闲结点链表;和/或,回收单元,用于在回收内存时,将回收的内存结点挂回到空闲结点链表上,并更改相关指针信息维护增加该回收的内存结点之后的空闲结点链表。
本申请提供的内存管理方法及装置,使用定义的三种指针能够将若干空闲内存结点链接成空闲结点链表,通过更改相关指针信息便可以从空闲结点链表上获取空闲内存结点或者将回收的内存结点挂回到空闲结点链表上,也就是说通过动态的维护一个空闲结点链表即可实现内存管理,每分配或者回收一个内存结点通过操作空闲结点链表的相关指针即可,有效提升了内存管理效率,且程序设计简单,易于实现。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中内存管理方法流程图;
图2为本申请实施例中初始状态下整个内存状态示意图;
图3为本申请实施例中当申请几个内存结点使用后,整个内存状态示意图;
图4为本申请实施例中当回收一个内存结点后,段整个内存状态示意图;
图5为本申请实施例中持续分配内存直到整个内存空间即将使用结束,并且又回收了一个内存结点,整个内存状态示意图;
图6为本申请实施例中整个内存空间都使用过一次之后,整个内存状态示意图;
图7为本申请实施例中在图6基础上又回收了一个内存结点,然后又分配了一个空闲内存结点之后,整个内存状态示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110273998.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种外部设备检测的处理方法及装置
- 下一篇:大板支撑装置