[发明专利]内存回收与分配的方法及装置有效
申请号: | 201310263454.3 | 申请日: | 2013-06-27 |
公开(公告)号: | CN103365784A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 吴建国;裘稀石 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市威世博知识产权代理事务所(普通合伙) 44280 | 代理人: | 何青瓦 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 回收 分配 方法 装置 | ||
1.一种内存回收与分配的方法,其特征在于,包括:
接收内存分配请求;
在接收所述内存分配请求后,若当前第一内存管理区的内存不满足预定的大小,则判断所述当前第一内存管理区的回收模式是否表示回收所述当前第一内存管理区,其中,所述当前第一内存管理区的回收模式是根据所述当前第一内存管理区所属节点的拓扑情况来确定的;
若所述当前第一内存管理区的回收模式表示回收所述当前第一内存管理区,则对所述当前第一内存管理区进行回收;
响应于所述内存分配请求,对回收后的所述当前第一内存管理区的内存进行分配。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述当前第一内存管理区所属节点的拓扑情况确定所述当前第一内存管理区的回收模式。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前第一内存管理区所属节点的拓扑情况确定所述当前第一内存管理区的回收模式的步骤,包括:
若所述当前第一内存管理区是所述当前第一内存管理区所属节点的最后一个内存管理区,则判断系统内存管理区链表Zonelist中是否存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区;
若存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区,则确定所述当前第一内存管理区的回收模式是回收所述当前第一内存管理区。
4.根据权利要求3所述的方法,其特征在于,所述判断系统内存管理区链表Zonelist中是否存在与所述当前第一内存管理区之间的距离大于预设回收距离的第二内存管理区的步骤之后,还包括:
若存在与所述当前第一内存管理区之间的距离小于或等于所述预设回收距离的第三内存管理区,则判断所述系统内存管理区链表Zonelist中是否存在空闲内存大于预设阈值的第三内存管理区;
若存在空闲内存大于预设阈值的第三内存管理区,则响应于所述内存分配请求,分配所述空闲内存大于预设阈值的第三内存管理区的内存。
5.根据权利要求1所述的方法,其特征在于,所述判断当前第一内存管理区的回收模式是否表示回收所述当前第一内存管理区的步骤之前,还包括:
若所述当前第一内存管理区的内存不满足预定的大小,则判断所述当前第一内存管理区已建立的备用内存管理区链表Zonelist中是否存在满足预定大小的第四内存管理区;
若存在满足预定大小的第四内存管理区,则响应于所述内存分配请求,分配所述备用内存管理区链表Zonelist中满足预定大小的第四内存管理区的内存。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:建立当前第一内存管理区的备用内存管理区链表Zonelist;
所述建立当前第一内存管理区的备用内存管理区链表Zonelist的步骤,包括:
判断所述系统内存管理区链表Zonelist中是否存在与当前第一内存管理区之间的距离小于等于预设回收距离的第四内存管理区;
若存在与当前第一内存管理区之间的距离小于预设回收距离的第四内存管理区,则将所述与当前第一内存管理区之间的距离小于预设回收距离的第四内存管理区添加到所述当前第一内存管理区的备用内存管理区链表Zonelist中。
7.一种内存回收与分配的装置,其特征在于,所述装置包括:接收模块、第一判断模块、回收模块以及第一分配模块;
所述接收模块用于接收内存分配请求;
所述第一判断模块用于在所述接收模块接收所述内存分配请求后,在当前第一内存管理区的内存不满足预定的大小时,判断所述当前第一内存管理区的回收模式是否表示回收所述当前第一内存管理区,其中,所述当前第一内存管理区的回收模式是根据所述当前第一内存管理区所属节点的拓扑情况来确定的;
所述回收模块用于在所述第一判断模块的判断结果为所述当前第一内存管理区的回收模式表示回收所述当前第一内存管理区时,对所述当前第一内存管理区进行回收;
所述第一分配模块用于在所述回收模块回收当前第一内存管理区后,响应于所述内存分配请求,对回收后的所述当前第一内存管理区的内存进行分配。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括确定模块,所述确定模块用于根据当前第一内存管理区所属节点的拓扑情况确定所述当前第一内存管理区的回收模式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310263454.3/1.html,转载请声明来源钻瓜专利网。