一种内存调度方法及装置.pdf

上传人:1*** 文档编号:1285596 上传时间:2018-04-12 格式:PDF 页数:16 大小:1.10MB
返回 下载 相关 举报
摘要
申请专利号:

CN201610830230.X

申请日:

2016.09.19

公开号:

CN106502918A

公开日:

2017.03.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 12/06申请日:20160919|||公开

IPC分类号:

G06F12/06

主分类号:

G06F12/06

申请人:

上海华为技术有限公司

发明人:

郝珅

地址:

201206 上海市浦东新区新金桥路2222号

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙) 44285

代理人:

王仲凯

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种内存调度方法,用于简化内存划分,提高调度效率。本发明实施例方法包括:根据预置规则将内存划分成多个内存块,所述内存块的大小为固定值;当接收到目标任务请求时,确定所述目标任务请求对应的多个子需求,每一个所述子需求的大小均小于所述多个内存块中容量最大的内存块的大小;建立所述多个子需求与所述多个内存块的映射关系;根据所述多个子需求与所述多个内存块的映射关系向内存管理模块申请所述目标任务请求对应的内存块集合。本发明实施例还提供了一种调度装置,用于简化内存划分,提高调度效率。

权利要求书

1.一种内存调度方法,其特征在于,包括:
根据预置规则将内存划分成多个内存块,所述内存块的大小为固定值;
当接收到目标任务请求时,确定所述目标任务请求对应的多个子需求,每一个所述子
需求的大小均小于所述多个内存块中容量最大的内存块的大小;
建立所述多个子需求与所述多个内存块的映射关系;
根据所述多个子需求与所述多个内存块的映射关系向内存管理模块申请所述目标任
务请求对应的内存块集合。
2.根据权利要求1所述的方法,其特征在于,所述建立所述的多个子需求与所述多个内
存块的映射关系包括:
当确定所述目标任务请求对应的已分配集合为空,或所述目标任务请求对应的已分配
集合中不存在剩余内存能够满足目标子需求的目标内存块时,确定所述内存中能满足所述
目标子需求的最小内存块,所述目标子需求为所述多个子需求中的任意一个子需求;
将所述最小内存块放入所述已分配集合中,并建立所述目标子需求与所述最小内存块
的映射关系;
当确定所述目标任务请求对应的已分配集合不为空且所述已分配集合中存在剩余内
存能够满足目标子需求的目标内存块时,确定所述目标内存块中剩余内存最小的最小目标
内存块;
建立所述目标子需求与所述最小目标内存块的映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述多个子需求与所述多个
内存块的映射关系向内存管理模块申请所述目标任务对应的内存集合之后包括:
当确定所述目标任务请求对应的任务结束时,告知所述内存管理模块所述内存块集合
中各个内存块对应的内存块标记,以使得所述内存管理模块释放所述内存块集合中的内存
块。
4.根据权利要求1或2所述的方法,其特征在于,所述内存为近端存储空间。
5.根据权利要求1或2所述的方法,其特征在于,所述根据预置规则将内存划分成多个
内存块包括:
根据业务需求将内存划分成多种大小为固定值的内存块,每种内存块对应不同的固定
值,且每种内存块的数量大于预置阈值。
6.一种调度装置,其特征在于,包括:
划分模块,用于根据预置规则将内存划分成多个内存块,所述内存块的大小为固定值;
确定模块,用于当接收到目标任务请求时,确定所述目标任务请求对应的多个子需求,
每一个所述子需求的大小均小于所述多个内存块中容量最大的内存块的大小;
建立模块,用于建立所述确定模块确定的多个子需求与所述划分模块划分的多个内存
块的映射关系;
申请模块,用于根据所述建立模块建立的所述多个子需求与多个内存块的映射关系向
内存管理模块申请所述目标任务请求对应的内存块集合。
7.根据权利要求6所述的装置,其特征在于,所述建立模块包括:
第一确定单元,用于当确定所述目标任务请求对应的已分配集合为空,或所述已分配
集合中不存在剩余内存能够满足目标子需求的目标内存块时,确定所述内存中能满足所述
目标子需求的最小内存块,所述目标子需求为所述多个子需求中的任意一个子需求;
第一建立单元,用于将所述第一确定单元确定的所述最小内存块放入所述已分配集合
中,并建立所述目标子需求与所述最小内存块的映射关系;
第二确定单元,用于当确定所述目标任务请求对应的已分配集合不为空且所述已分配
集合中存在剩余内存能够满足目标子需求的目标内存块时,确定所述目标内存块中剩余内
存最小的最小目标内存块;
第二建立单元,用于建立所述目标子需求与所述第二确定单元确定的所述最小目标内
存块的映射关系。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
告知模块,用于当确定所述目标任务请求对应的任务结束时,告知所述内存管理模块
所述内存块集合中各个内存块对应的内存块标记,以使得所述内存管理模块释放所述内存
块集合中的内存块。
9.根据权利要求6或7所述的装置,其特征在于,所述划分模块包括:
第一划分单元,用于根据预置规则将近端存储空间划分成多个内存块。
10.根据权利要求6或7所述的装置,其特征在于,所述划分模块包括:
第二划分单元,用于根据业务需求将内存划分成多种大小为固定值的内存块,每种内
存块对应不同的固定值,且每种内存块的数量大于预置阈值。

说明书

一种内存调度方法及装置

技术领域

本发明涉及通讯领域,尤其涉及一种内存调度方法及装置。

背景技术

随着用户对处理器性能的要求不断提高,功耗问题限制了单核处理器不断提高性
能的发展途径,越来越多的多核处理器应运而生。在多核处理器中,多个处理器并行运算,
需要处理的任务被分解成若干个部分,根据一定的调度原则,由负责调度的功能模块,将每
个部分调度到一个核上执行。而在一个多核处理器中,存储器的容量、速度和价格三者经常
互相矛盾,存储器的速度越快,则价格越高;容量越大,则速度越慢。所以多核处理器通常采
用由多级存储器组成的存储体系,从而较好地解决存储器大容量、高速度和低成本这三者
间的矛盾。

基于多核多级存储的并行架构,由集中的调度功能模块或称为调度核心负责任务
的调度和分配,现有技术中,调度功能模块(或调度核心)将内存分为不同的区间或等级,相
同大小等级的空闲内存块放在同一链表上,比如第一级按照2的幂进行分级,第二级将第一
级的结果进一步线性划分,分成1个等级、2个等级、4个等级或8个等级,同时维护一个按照
地址顺序的空闲内存链表。当接收到任务请求时,将任务的所有子需求求和,按求和后的内
存需求总量申请内存,在申请内存时,根据申请大小计算其等级,如果空闲内存链表无空闲
内存时,则在其高一级的链表上分配,如果在高一级链表上没有空闲内存块,则再到更高级
别的链表上分配,直到找到空闲内存块或分配失败。如果有空闲内存链表,则使用链表头部
的空闲内存块,如果内存块大于申请大小,则将内存块分割,将剩余的内存块与前后的空闲
内存块合并,如果不能合并,则挂接到对应的等级链表上。

上述方式不管是内存划分,还是申请内存,都需要进行较复杂的计算,方案实现复
杂度高。并且调度核心在申请和释放内存时,都可能要做合并处理,效率不可控,当任务较
多,计算量会很大,效率就会很低。

发明内容

本发明实施例提供了一种内存调度方法及装置,用于简化内存划分,提高调度效
率。

有鉴于此,本发明实施例第一方面提供了一种内存调度方法,该方法包括:

调度装置预先根据预置规则将内存划分成多个大小为固定值的内存块,当系统接
收到目标任务请求后,会根据预置规则将目标任务请求对应的内存需求划分成多个子需
求,使得每一个子需求的大小均小于内存中容量最大的内存块的大小,系统划分目标任务
请求后,将目标任务请求传送到调度装置,当调度装置接收到目标任务请求时,首先确定目
标任务请求对应的多个子需求,并建立这多个子需求与多个内存块的映射关系,再根据这
多个子需求与多个内存块的映射关系向内存管理模块申请目标任务请求对应的内存块集
合。

本发明实施例中,调度装置可以将内存划分成多个内存块,其中,内存块的大小为
固定值,当调度装置接收到目标任务请求时,确定目标任务请求对应的子需求,每一个子需
求的大小均小于多个内存块中容量最大的内存块的大小,因此每个子需求均能在划分出来
的内存块中找到对应的内存块,从而调度装置能够建立子需求与内存块的映射关系,再根
据映射关系向内存管理模块申请内存。本方案中内存划分的方式也比较简单,不需要作复
杂的计算处理,并且每一个子需求对应一个内存块,不需要对内存进行合并处理就能完成
内存的调度,即使任务较多时,也能维持较高的效率完成调度。

结合本发明实施例的第一方面,在本发明实施例第一方面的第一种实现方式中,
调度装置建立多个子需求与多个内存块的映射关系的过程具体包括:

调度装置判断目标任务请求对应的已分配集合是否为空,若确定该已分配集合为
空,则调度装置确定内存中能够满足目标子需求的最小内存块,将该最小内存块放入该已
分配集合中,并建立目标子需求与该最小内存块的映射关系;若确定该已分配集合不为空,
则调度装置判断该已分配集合中是否存在剩余内存能够满足目标子需求的目标内存块,若
确定存在目标内存块,则调度装置确定目标内存块中剩余内存最小的最小目标内存块,并
将该最小目标内存块放入该已分配集合中,同时建立目标子需求与最小目标内存块的映射
关系;若确定不存在目标内存块,则调度装置返回执行上述步骤确定内存中能够满足目标
子需求的最小内存块,将该最小内存块放入已分配集合中,并建立目标子需求与该最小内
存块的映射关系。

需要说明的是,目标子需求为目标任务请求对应的多个子需求中任意一个子需
求,调度装置针对每一个子需求通过上述方式找到与该子需求对应的内存块,由此即可建
立目标任务请求对应的多个子需求与内存中多个内存块的映射关系。本发明实施例提供了
一种调度装置建立多个子需求与多个内存块的映射关系的具体实现方式,提高了方案的可
实现性。

结合本发明实施例的第一方面或第一方面的第一种实现方式,在本发明实施例第
一方面的第二种实现方式中,调度装置根据多个子需求与多个内存块的映射关系向内存管
理模块申请目标任务对应的内存集合之后,调度装置可以执行如下操作:

当调度装置确定目标任务请求对应的任务结束时,调度装置告知内存管理模块目
标任务对应的内存集合中各个内存块对应的内存块标记,使得内存管理模块根据该内存标
记释放内存块集合中的所有内存块,即将这些内存块的状态标识为空闲。

本发明实施例中,调度装置确定任务结束后,告知内存管理模块任务对应的内存
块集合中各个内存块对应的内存标记,内存管理模块就能直接释放这些内存块,不需要作
计算和合并处理,释放过程简单快速,能够进一步提高调度效率。

结合本发明实施例的第一方面或第一方面的第一种实现方式,在本发明实施例第
一方面的第三种实现方式中,内存为近端存储空间,近端存储空间指的是核访问效率较高
的内存空间。

本发明实施例提供了内存划分的具体场景,提高了方案的可实现性。

结合本发明实施例的第一方面或第一方面的第一种实现方式,在本发明实施例第
一方面的第四种实现方式中,调度装置根据预置规则将内存划分成多个内存块的过程可以
包括:

调度装置根据业务需求将内存划分成多种大小为固定值的内存块,每种内存块对
应不同的固定值,且每种内存块的数量大于预置阈值。

本发明实施例提供了一种划分内存块的具体实现方式,提高了方案的可实现性。

本发明实施例的第二方面提供了一种调度装置,该装置包括:

划分模块,用于根据预置规则将内存划分成多个内存块,每个内存块的大小均为
固定值;

确定模块,用于当接收到目标任务请求时,确定目标任务请求对应的多个子需求,
每一个子需求的大小均小于多内存块中容量最大的内存块的大小;

建立模块,用于建立多个子需求与划分模块划分的多个内存块的映射关系;

申请模块,用于根据建立模块建立的多个子需求与多个内存块的映射关系向内存
管理模块申请目标任务请求对应的内存块集合。

本发明实施例中,划分模块可以将内存划分成多个内存块,其中,内存块的大小为
固定值,当接收到目标任务请求时,确定模块可以确定目标任务请求对应的子需求,每一个
子需求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在划分出来的
内存块中找到对应的内存块,从而建立模块能够建立子需求与内存块的映射关系,申请模
块再根据映射关系向内存管理模块申请内存。本方案中内存划分的方式也比较简单,不需
要作复杂的计算处理,并且每一个子需求对应一个内存块,不需要对内存进行合并处理就
能完成内存的调度,即使任务较多时,也能维持较高的效率完成调度。

结合本发明实施例的第二方面,在本发明实施例第二方面的第一种实现方式中,
建立模块包括:

第一确定单元,用于当确定目标任务请求对应的已分配集合为空,或已分配集合
中不存在剩余内存能够满足目标子需求的目标内存块时,确定内存中能满足目标子需求的
最小内存块,目标子需求为多个子需求中的任意一个子需求;

第一建立单元,用于将第一确定单元确定的最小内存块放入已分配集合中,并建
立目标子需求与最小内存块的映射关系;

第二确定单元,用于当确定目标任务请求对应的已分配集合不为空且已分配集合
中存在剩余内存能够满足目标子需求的目标内存块时,确定目标内存块中剩余内存最小的
最小目标内存块;

第二建立单元,用于建立目标子需求与第二确定单元确定的最小目标内存块的映
射关系。

本发明实施例提供了一种建立模块建立多个子需求与多个内存块的映射关系的
具体实现方式,提高了方案的可实现性。

结合本发明实施例的第二方面或第二方面的第一种实现方式,在本发明实施例第
二方面的第二种实现方式中,该装置还包括:

告知模块,用于当确定目标任务请求对应的任务结束时,告知内存管理模块内存
块集合中各个内存块对应的内存块标记,以使得内存管理模块释放内存块集合中的内存
块。

本发明实施例中调度装置还可以包括告知模块,用于告知内存管理模块内存块集
合中各个内存块对应的内存标记,使得内存管理模块能够根据该内存标记直接释放内存
块,不需要做计算或合并处理,释放内存块的过程方便快速,能够进一步提高调度效率。

结合本发明实施例的第二方面或第二方面的第一种实现方式,在本发明实施例第
二方面的第三种实现方式中,划分模块包括:

第一划分单元,用于根据预置规则将近端存储空间划分成多个内存块。

本发明实施例提供了一种划分模块划分内存块的具体实现方式,提高了方案的可
实现性。

结合本发明实施例的第二方面或第二方面的第一种实现方式,在本发明实施例第
二方面的第四种实现方式中,划分模块包括:

第二划分单元,用于根据业务需求将内存划分成多种大小为固定值的内存块,每
种内存块对应不同的固定值,且每种内存块的数量大于预置阈值。

本发明实施例提供了另一种划分模块划分内存块的具体实现方式,提高了方案的
灵活性。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,调度装置可以将内存划分成多个内存块,其中,内存块的大小为
固定值,当调度装置接收到目标任务请求时,确定目标任务请求对应的子需求,每一个子需
求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在划分出来的内存
块中找到对应的内存块,从而调度装置能够建立子需求与内存块的映射关系,再根据映射
关系向内存管理模块申请内存。本方案中内存划分的方式也比较简单,不需要作复杂的计
算处理,并且每一个子需求对应一个内存块,不需要对内存进行合并处理就能完成内存的
调度,即使任务较多时,也能维持较高的效率完成调度。

附图说明

图1为本发明实施例中内存调度方法的一个实施例示意图;

图2为本发明实施例中内存调度方法的另一实施例示意图;

图3为本发明实施例中调度装置的一个实施例示意图;

图4为本发明实施例中调度装置的另一实施例示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第
四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理
解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除
了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何
变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产
品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这
些过程、方法、产品或设备固有的其它步骤或单元。

应理解,本发明实施例适用于任何实时并行系统,具体可以基于多核多级存储的
并行架构,也可以基于其他架构,具体此处不作限定。

下面以多核多级存储的并行架构的为例对本发明应用的系统架构进行说明,在多
核芯片中,一部分核用于负责生成任务,一部分核用于执行任务,任务在某个核上执行所需
要的数据,在任务执行时需要存储在核访问效率最高的内存中,但是任务执行前,所需数据
一般存储在核访问效率低的存储空间中。数据在低速存储空间与高速存储空间之间的搬移
可以由核负责,也可以由调度核心负责。当调度核心负责数据搬移时,同时还负责管理核访
问效率高的内存空间,以便决定将数据搬移到的具体地址。

还应理解,本发明实施例中调度装置包括调度核心(功能调度模块),调度核心可
以是由一个或多个核上的软件实现,也可以由独立的专用硬件实现,具体此处不作限定。

基于上述系统架构,本发明实施例提供了一种内存调度方法及装置,用于简化内
存划分,提高调度效率。

请参阅图1,本发明实施例中内存调度方法的一个实施例包括:

步骤101、调度装置根据预置规则将内存划分成多个内存块;

调度装置根据预置规则将内存划分成多个内存块,每一个内存块的大小都是固定
不变的,为固定值。

步骤102、调度装置确定目标任务请求对应的多个子需求;

当调度装置接收目标任务请求时,确定目标任务请求对应的多个子需求。需要说
明的是,本发明实施例中,目标任务在传达到调度装置前,该目标任务的内存需求会被划分
成多个子需求,具体会根据内存的划分规则(即预置规则)划分子需求,使得每一个子需求
的大小均小于划分的多个内存块中容量最大的内存块的大小。

步骤103、调度装置建立多个子需求与多个内存块的映射关系;

调度装置确定目标任务请求对应的多个子需求后,建立者多个子需求与内存块的
映射关系。需要说明的是,这里的映射关系指的是子需求到内存块的映射,每一个子需求在
内存上均能找到一个与之对应的内存块。

步骤104、调度装置根据多个子需求与多个内存块的映射关系向内存管理模块申
请目标任务请求对应的内存块集合。

调度装置建立多个子需求与多个内存块的映射关系后,根据该映射关系向内存管
理模块申请目标任务请求对应的内存块集合,以使得任务执行核执行目标任务。这里目标
任务请求对应的内存块集合指的是,所有与子需求存在映射关系的内存块的集合。

本发明实施例中,调度装置可以将内存划分成多个内存块,其中,内存块的大小为
固定值,当调度装置接收到目标任务请求时,确定目标任务请求对应的子需求,每一个子需
求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在划分出来的内存
块中找到对应的内存块,从而调度装置能够建立子需求与内存块的映射关系,再根据映射
关系向内存管理模块申请内存。本方案中内存划分的方式也比较简单,不需要作复杂的计
算处理,并且每一个子需求对应一个内存块,不需要对内存进行合并处理就能完成内存的
调度,即使任务较多时,也能维持较高的效率完成调度。

为了便于理解,下面对本发明实施例中的内存调度方法进行详细描述,请参阅图
2,本发明实施例中内存调度方法的另一实施例包括:

步骤201、调度装置根据预置规则将内存划分成多个内存块;

调度装置根据预置规则将内存划分成多个内存块,每一个内存块的大小都是固定
不变的,为固定值。具体地,调度装置可以根据业务需求将内存划分成多种大小固定值的内
存块,每种内存块对应不同的固定值,且每种内存块数量大于预置阈值。进一步地,还可以
对内存块的种类(相同的固定值为一类)进行限制,使内存块的种类数目小于预置阈值。

可以理解的是,除了上述划分规则,规划装置还可以根据其他预置的规则对内存
块进行划分,具体此处不作限定。

还需要理解的是,本发明实施例中内存可以是核访问效率最高的近端存储空间,
可以是任务执行核的私有内存,也可以是其他存储空间,具体此处不作限定。

步骤202、调度装置确定目标任务请求对应的多个子需求;

当调度装置接收目标任务请求时,确定目标任务请求对应的多个子需求。需要说
明的是,本发明实施例中,目标任务在传达到调度装置前,该目标任务的内存需求会被划分
成多个子需求,具体会根据内存的划分规则(即预置规则)划分子需求,使得每一个子需求
的大小均小于划分的多个内存块中容量最大的内存块的大小。

步骤203、调度装置判断目标任务请求对应的已分配集合是否为空,若是,则执行
步骤204,若否,则执行步骤206;

调度装置确定目标任务请求对应的多个子需求后,判断目标任务请求对应的已分
配集合是否为空,若是,则执行步骤204,若否,则执行步骤206。需要说明的是,已分配集合
指的是已经与目标任务请求对应的子需求确定对应关系的内存块的集合,即已分配了子需
求的内存块的集合。还需要说明的是,已分配集合还能够指示集合中各个内存块对应的剩
余内存,剩余内存指的是该内存块放入已分配的子需求后剩余的内存容量。

步骤204、调度装置确定内存中能满足目标子需求的最小内存块,并执行步骤205;

当调度装置确定目标任务请求对应的已分配集合为空,或确定已分配集合中不存
在剩余内存能够满足目标子需求的目标内存块时,调度装置确定内存中能够满足目标子需
求的最小内存块,具体地调度装置需要先确定内存中处于空闲状态的内存块,再确定这些
空闲状态的内存块中放入目标子需求后剩余容量最小的内存块即最小内存块。需要说明的
是,目标子需求为目标任务请求对应的多个子需求中的任意一个子需求。

步骤205、调度装置将最小内存块放入已分配集合中,并建立目标子需求与最小内
存块的映射关系;

调度装置确定最小内存块后,将最小内存块放入目标任务请求对应的已分配集合
中,并建立目标子需求与最小内存块的映射关系。调度装置将最小内存块放入目标任务请
求对应的已分配集合中,即将最小内存块标记为已分配子需求的内存块,同时标记该内存
块放入目标子需求后剩余的内存容量。

步骤206、调度装置判断已分配集合中是否存在剩余内存能够满足目标子需求的
目标内存块,若是,则执行步骤207,若否,则返回执行步骤204;

当调度装置确定目标任务请求对应的已分配集合不为空时,调度装置查找目标任
务请求对应的已分配集合中的每一个内存块,判断是否存在剩余内存能够满足目标子需求
的目标内存块,若是,则执行步骤207,若否,则执行步骤204。

步骤207、调度装置确定目标内存块中剩余内存最小的最小目标内存块,并执行步
骤208;

当调度装置确定目标任务请求对应的已分配集合中存在剩余内存能够满足目标
子需求的目标内存块时,调度装置确定目标内存块中剩余内存最小的最小目标内存块,并
执行步骤208。

步骤208、调度装置建立目标子需求与最小目标内存块的映射关系。

调度装置确定最小目标内存块后,建立目标子需求与最小目标内存块的映射关
系,同时更新该最小目标内存块的剩余内存。

步骤209、调度装置根据多个子需求与多个内存块的映射关系向内存管理模块申
请目标任务请求对应的内存块集合。

调度装置针对目标任务请求对应的所有子需求,通过上述方式步骤202至步骤209
中的方式建立映射关系后,根据建立的映射关系向内存管理模块申请目标任务请求对应的
内存块集合,以使得任务执行核执行目标任务。这里目标任务请求对应的内存块集合指的
是,所有与子需求存在映射关系的内存块的集合,即目标任务请求对应的已分配集合中包
含的内存块的集合。

需要说明的是,本发明实施例中任务执行核完成目标任务(即目标任务请求对应
的任务结束)之后,调度装置可以告知内存管理模块该内存块集合中各个内存块对应的内
存标记,以使得内存管理模块释放该内存块集合中的内存块,即将该内存块集合中的内存
块的状态标识为空闲。也可以执行其他操作,具体此处不作限定。

本发明实施例中,调度装置可以将内存划分成多个内存块,其中,内存块的大小为
固定值,当调度装置接收到目标任务请求时,确定目标任务请求对应的子需求,每一个子需
求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在划分出来的内存
块中找到对应的内存块,从而调度装置能够建立子需求与内存块的映射关系,再根据映射
关系向内存管理模块申请内存。本方案中内存划分的方式也比较简单,不需要作复杂的计
算处理,并且每一个子需求对应一个内存块,不需要对内存进行合并处理就能完成内存的
调度,即使任务较多时,也能维持较高的效率完成调度。

其次,本发明实施例提供了一种任务调度装置建立多个子需求与多个内存块的映
射关系的具体实现方式,提高了方案的可实现性。

再次,本发明实施例调度装置确定任务结束后,告知内存管理模块任务对应的内
存块集合中各个内存块对应的内存标记,内存管理模块就能直接释放这些内存块,不需要
作计算和合并处理,释放过程简单快速,能够进一步提高调度效率。

为了便于理解,下面以一实际应用场景对本发明实施例中的内存调度方法进行描
述:

调度核心根据业务需求将任务执行核A的私有内存划分成2个18KB的内存块(记为
A1,A2)和2个10KB的内存块(记为A3,A4),系统接收到运行微信的请求(目标任务请求),根
据将请求划分成3个对应内存分别为12KB,5KB和11KB的子需求。

调度核心接收到目标任务请求后,确定目标任务请求的内存需求对应的子需求分
别为12KB,5KB和11KB,并选定任务执行核A执行该目标任务,而A的私有内存中空闲内存块
为A1、A2、A3和A4。

调度核心确定目标任务请求对应的子需求和A中的空闲内存块后,针对每一个子
需求,确定A的私有内存中与之对应的内存块。

首先为12KB的子需求(目标子需求)寻找对应的内存块,调度核心判断目标任务请
求对应的已分配集合是否为空,由于还未开始建立子需求和内存块的映射关系,故调度核
心确定已分配集合为空,调度核心确定A的私有内存中能够容纳12KB子需求的空闲内存块
为A1、和A2。由于A1和A2大小相等,故任选其一与12KB子需求建立映射,这里选择A1(最小内
存块),调度核心将A1放入已分配集合中,并建立A1与12KB的子需求的映射关系,同时标记
A1对应的剩余内存为6KB。

然后为11KB的子需求(目标子需求)寻找对应的内存块,调度核心判断目标任务请
求对应的已分配集合是否为空,已存在内存块A1,故调度核心确定已分配集合不为空,调度
核心进一步判断已分配集合中是否存在剩余内存能够满足11KB子需求的目标内存块,A1的
剩余内存为6KB,故调度核心确定已分配集合中不存在剩余内存能够满足11KB子需求的目
标内存块,调度核心确定A的私有内存中能够容纳11KB的内存块为A2,调度核心将A2放入已
分配集合中,并建立A2与11KB的子需求的映射关系,同时标记A2对应的剩余内存为7KB。

接着为5KB的子需求(目标子需求)寻找对应的内存块,调度核心判断目标任务请
求对应的已分配集合是否为空,已存在内存块A1和A2,故调度核心确定已分配集合不为空,
调度核心进一步判断已分配集合中是否存在剩余内存能够满足5KB子需求的目标内存块,
确定A1和A2(目标内存块)的剩余内存均能够满足5KB子需求,A1的剩余内存小于A2的剩余
内存,故确定A1位最小目标内存块,调度核心建立A1与5KB子需求的映射关系,同时标记A1
对应的剩余内存为1KB。

根据上述建立的映射关系(A1对应12KB子需求和5KB子需求,A2对应11KB子需求),
调度核心向内存管理模块请求将A1用于运行12KB及5KB子需求,将A2用于运行11KB子需求。
申请通过后,内存管理模块将A1和A2的状态更改为已分配,任务执行核A执行目标任务(即
运行微信),具体地,A的私有内存中的A1用于运行12KB的子需求和5KB的子需求,A2用于运
行11KB的子需求。

当系统退出微信时,任务执行核A停止运行微信(即任务结束)后,调度核心告知内
存管理模块目标任务对应的内存块集合中各个内存块对应的内存标记(A1和A2),内存管理
模块根据内存标记,将内存块A1和内存块A2的状态更改为空闲。

上面介绍了本发明实施例中的内存调度方法,下面介绍本发明实施例中的调度装
置,请参阅图3,本发明实施例中调度装置的一个实施例包括:

划分模块301,用于根据预置规则将内存划分成多个内存块,内存块的大小为固定
值;

确定模块302,用于当接收到目标任务请求时,确定目标任务请求对应的多个子需
求,每一个子需求的大小均小于多个内存块中容量最大的内存块的大小;

建立模块303,用于建立确定模块302确定的多个子需求与划分模块301划分的多
个内存块的映射关系;

申请模块304,用于根据建立模块303建立的多个子需求与多个内存块的映射关系
向内存管理模块申请目标任务请求对应的内存块集合。

本发明实施例中,划分模块301可以将内存划分成多个内存块,其中,内存块的大
小为固定值,当接收到目标任务请求时,确定模块302可以确定目标任务请求对应的子需
求,每一个子需求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在
划分出来的内存块中找到对应的内存块,从而建立模块303能够建立子需求与内存块的映
射关系,申请模块304再根据映射关系向内存管理模块申请内存。本方案中内存划分的方式
也比较简单,不需要作复杂的计算处理,并且每一个子需求对应一个内存块,不需要对内存
进行合并处理就能完成内存的调度,即使任务较多时,也能维持较高的效率完成调度。

为了便于理解,下面对本发明实施例中的调度装置进行详细介绍,请参阅图4,本
发明实施例中调度装置的另一实施例包括:

划分模块401,用于根据预置规则将内存划分成多个内存块,每个内存块的大小均
为固定值;

确定模块402,用于当接收到目标任务请求时,确定目标任务请求对应的多个子需
求,每一个子需求的大小均小于多个内存块中容量最大的内存块的大小;

建立模块403,用于建立确定模块402确定的多个子需求与划分模块301划分的多
个内存块的映射关系;

申请模块404,用于根据建立模块建立403的多个子需求与多个内存块的映射关系
向内存管理模块申请目标任务请求对应的内存块集合。

其中,建立模块403包括:

第一确定单元4031,用于当确定目标任务请求对应的已分配集合为空,或已分配
集合中不存在剩余内存能够满足目标子需求的目标内存块时,确定内存中能满足目标子需
求的最小内存块,目标子需求为多个子需求中的任意一个子需求;

第一建立单元4032,用于将第一确定单元确定的最小内存块放入已分配集合中,
并建立目标子需求与最小内存块的映射关系;

第二确定单元4033,用于当确定已分配集合不为空且已分配集合中存在剩余内存
能够满足目标子需求的目标内存块时,确定目标内存块中剩余内存最小的最小目标内存
块;

第二建立单元4034,用于建立目标子需求与第二确定单元确定的最小目标内存块
的映射关系。

可选地,本发明实施例中调度装置还可以包括:

告知模块405,用于当确定目标任务请求对应的任务结束时,告知内存管理模块目
标任务请求对应的内存块集合中各个内存块对应的内存块标记,以使得内存管理模块释放
内存块集合中的内存块。

可选地,本发明实施例中划分模块401可以包括:

第一划分单元4011,用于根据预置规则将近端存储空间划分成多个内存块;

和/或,

第二划分单元4012,用于根据业务需求将内存划分成多种大小为固定值的内存
块,每种内存块对应不同的固定值,且每种内存块的数量大于预置阈值。

本发明实施例中,划分模块401可以将内存划分成多个内存块,其中,内存块的大
小为固定值,当接收到目标任务请求时,确定模块402可以确定目标任务请求对应的子需
求,每一个子需求的大小均小于内存中容量最大的内存块的大小,因此每个子需求均能在
划分出来的内存块中找到对应的内存块,从而建立模块403能够建立子需求与内存块的映
射关系,申请模块404再根据映射关系向内存管理模块申请内存。本方案中内存划分的方式
也比较简单,不需要作复杂的计算处理,并且每一个子需求对应一个内存块,不需要对内存
进行合并处理就能完成内存的调度,即使任务较多时,也能维持较高的效率完成调度。

其次,本发明实施例提供了一种建立模块403建立多个子需求与多个内存块的映
射关系的具体实现方式,提高了方案的可实现性。

再次,本发明实施例中调度装置还可以包括告知模块405,用于告知内存管理模块
内存块集合中各个内存块对应的内存标记,使得内存管理模块能够根据该内存标记直接释
放内存块,不需要做计算或合并处理,释放内存块的过程方便快速,能够进一步提高调度效
率。

进一步地,本发明实施例中的划分模块401还可以通过多种方式划分内存块,提高
了方案的灵活性。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以
通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全
部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前
述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

一种内存调度方法及装置.pdf_第1页
第1页 / 共16页
一种内存调度方法及装置.pdf_第2页
第2页 / 共16页
一种内存调度方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《一种内存调度方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种内存调度方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种内存调度方法,用于简化内存划分,提高调度效率。本发明实施例方法包括:根据预置规则将内存划分成多个内存块,所述内存块的大小为固定值;当接收到目标任务请求时,确定所述目标任务请求对应的多个子需求,每一个所述子需求的大小均小于所述多个内存块中容量最大的内存块的大小;建立所述多个子需求与所述多个内存块的映射关系;根据所述多个子需求与所述多个内存块的映射关系向内存管理模块申请所述目标任。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1