[发明专利]内存回收与分配的方法及装置有效

专利信息
申请号: 201310263454.3 申请日: 2013-06-27
公开(公告)号: CN103365784A 公开(公告)日: 2013-10-23
发明(设计)人: 吴建国;裘稀石 申请(专利权)人: 华为技术有限公司
主分类号: G06F12/02 分类号: G06F12/02
代理公司: 深圳市威世博知识产权代理事务所(普通合伙) 44280 代理人: 何青瓦
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 内存 回收 分配 方法 装置
【说明书】:

技术领域

发明涉及计算机应用技术领域,特别是涉及一种内存回收与分配的方法及装置。

背景技术

随着计算机技术的迅速发展,人们对计算机的需求日趋增长。单个处理器(CPU)的运算能力有限,人们迫切需要将多个处理器组成一个系统,非一致访问分布共享存储技术(NUMA,Non Uniform Memory Access Architecture),因其架构具有高可扩展性,正在被越来越多地运用在服务器领域。

NUMA是一种分布式结构,其特点是:任一处理器可以访问任意的内存、外设等;每个处理器访问不同的内存时,存在着不同的延迟。因此,内存管理最主要的目的是高效、快速地分配内存,使每个CPU都尽可能地访问本地内存,并且在适当的时候释放和回收内存资源。现有内存管理技术提供一个“回收模式”属性,当发生某一个内存管理区的内存不足而无法满足当前分配的情况时,内存管理系统根据“回收模式”的值来决定下一步的动作:当“回收模式”为“回收”时,则阻塞当前分配,先对该内存管理区进行空闲内存回收,回收结束后重新尝试在该内存管理区进行分配;当“回收模式”为“不回收”时,则继续寻找内存管理区链表,以获取下一个满足需求的内存管理区进行内存分配。

本申请的研发人员在长期的研发中发现,在现有的技术方案中,“回收模式”为全局属性,系统在确定“回收模式”的值时是根据当前系统中是否存在任意的两个节点之间的距离大于预先设定的“回收距离”,这种确定“回收模式”值的方案使得系统的控制粒度太大,无法很好地保证本地内存本地分配,造成不必要的内存远端访问,影响系统性能。

发明内容

本发明主要解决的技术问题是提供一种内存回收与分配的方法及装置,能够最大限度地保证本地内存在本地进行分配,一定程度避免不必要的内存远端访问,从而减少对系统性能的影响。

第一方面,本发明提供一种内存回收与分配的方法,包括:接收内存分配请求;在接收所述内存分配请求后,若当前第一内存管理区的内存不满足预定的大小,则判断当前第一内存管理区的回收模式是否表示回收所述当前第一内存管理区,其中,所述当前第一内存管理区的回收模式是根据所述当前第一内存管理区所属节点的拓扑情况来确定的;若所述当前第一内存管理区的回收模式表示回收所述当前第一内存管理区,则对所述当前第一内存管理区进行回收;响应于所述内存分配请求,对回收后的所述当前第一内存管理区的内存进行分配。

在第一方面的第一种可能的实现方式中,所述方法还包括:根据所述当前第一内存管理区所属节点的拓扑情况确定所述当前第一内存管理区的回收模式。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述当前第一内存管理区所属节点的拓扑情况确定所述当前第一内存管理区的回收模式的步骤,包括:若所述当前第一内存管理区是所述当前第一内存管理区所属节点的最后一个内存管理区,则判断系统内存管理区链表Zonelist中是否存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区;若存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区,则确定所述当前第一内存管理区的回收模式是回收所述当前第一内存管理区。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断系统内存管理区链表Zonelist中是否存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区的步骤之后,还包括:若存在与所述当前第一内存管理区之间的距离小于或等于所述预设回收距离的第三内存管理区,则判断所述系统内存管理区链表Zonelist中是否存在空闲内存大于预设阈值的第三内存管理区;若存在空闲内存大于预设阈值的第三内存管理区,则响应于所述内存分配请求,分配所述空闲内存大于预设阈值的第三内存管理区的内存。

在第一方面的第四种可能的实现方式中,所述判断当前第一内存管理区的回收模式是否表示回收所述当前第一内存管理区的步骤之前,还包括:若所述当前第一内存管理区的内存不满足预定的大小,则判断所述当前第一内存管理区已建立的备用内存管理区链表Zonelist中是否存在满足预定大小的第四内存管理区;若存在满足预定大小的第四内存管理区,则响应于所述内存分配请求,分配所述备用内存管理区链表Zonelist中满足预定大小的第四内存管理区的内存。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310263454.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top