一种基于加速因子的多核实时系统任务划分方法.pdf

上传人:t**** 文档编号:1493513 上传时间:2018-06-18 格式:PDF 页数:13 大小:797.25KB
返回 下载 相关 举报
摘要
申请专利号:

CN201210572999.8

申请日:

2012.12.25

公开号:

CN103473120A

公开日:

2013.12.25

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 9/46申请公布日:20131225|||实质审查的生效IPC(主分类):G06F 9/46申请日:20121225|||公开

IPC分类号:

G06F9/46

主分类号:

G06F9/46

申请人:

北京航空航天大学

发明人:

张炯; 龙其民; 牛天放; 李莹

地址:

100191 北京市海淀区学院路37号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明基于RM实时任务调度算法,提出了一种考虑任务加速效应的多核实时任务的划分方法。在原有的任务划分策略基础上考虑任务在执行过程中的相互加速作用对CPU利用率的影响,从而找到弹簧算法中的一个可用弹簧系数进行任务执行时间的压缩,以提高任务集合的RM可调度性。在本发明中,任务的加速效应由加速因子表征。首先利用该加速因子对最好适合(Best-Fit)算法进行改进,得到BF-λ算法;然后利用BF-λ算法完成任务集合在多个处理器核上的划分。

权利要求书

权利要求书
1.  描述任务相互影响的加速因子表的使用,其特征在于:对于一个任务数量为n的集合S,为任一任务子集建立从子集到加速因子的对应关系,该加速因子刻画的是任务间由于资源竞争和共享所造成的相互影响的程度或者相关性。该加速因子表的建立服务于基于任务加速因子的多核实时系统任务的划分,在具体的划分过程中通过任务的加速因子来决定任务的分组关系。

2.  基于加速因子的改进型最好适合(Best-Fit)算法——BF-λ算法,其特征在于,实施如下步骤:
步骤1:接收一个待划分的任务τl,初始化目标处理器核编号j=0,顺序查找的处理器核起始编号i=1(k为处理器核的数量);
步骤2:获取处理器核i当前已分配的任务集合Ψi,Ψi的任务数量为m,计算任务集合Ψi在处理器核i的利用率Ui。
步骤2.1:如果i>k,所有的处理器核都已经遍历,结束查找,返回查找结果j;
步骤2.2:查找加速因子表得到新的任务集合(Ψi+{τl})的加速因子λi,以及计算加入任务τl后的利用率 计算利用率增量 
步骤2.3:根据RM调度算法的判定条件判断任务集(Ψi+{τl})在处理器核i上是否可调度:如果不可调度,执行步骤3;否则,结束查找,返回最佳处理器核的编号j,;
步骤2.4:进行核i与核j的利用率判优:如果利用率增量ΔUi<ΔUj,则设置处理器核i为当前最佳的任务接收者,令j=i;执行步骤3;如果利用率增量ΔUi=ΔUj,则执行步骤2.5;
步骤2.5:执行Best-Fit,如果Ui>Uj,则j=i;这一步是采用贪心算法在满足可调度的情况下,使得处理器核的利用率尽可能高;
步骤3:i=i+1,执行步骤2.1,查看下一个处理器核。

3.  基于加速因子的多核实时系统任务划分方法,其特征在于,实施如下步骤:
步骤1:初始化,清空每一个处理器核的任务集合,设置Ψi=Φ,(1≤i≤k);同时,完成任务集合S的按利用率递减DU排序,即对于S中任何两个任务的τp和τq,(1≤p≤q≤n),,都有Up≥Uq;
步骤2:从S中按照利用率非增序获取一个任务τl;然后执行BF-λ算法,为任务τl寻找一个最佳的处理器核,设其编号为j(1≤j≤k),则有j=BF-λ(τl);
步骤3:如果步骤2中得到j=0,则BF-λ算法查找失败,说明此时没有可接收任务τl的处理器核,此次划分失败,结束;否则将τl分配到处理器核j,更新j的任务子集Ψj=Ψj+{τl},更新总任务集S=S-{τl};
步骤4:如果S≠Φ,即任务集S中还存在待划分的任务,执行步骤2;否则,输出划分方案Ψi(1≤i≤k),此次划分成功,结束。

4.  根据权利要求3所述的基于加速因子的多核实时系统任务划分方法,其特征在于,在所 述步骤2中,为某一任务τl完成处理器核选择的具体为:在为任务τl分配处理器核的时候,优先考虑那些既可满足可调度条件,且λ加速效果又最显著(表现为新任务带来的处理器核利用率增量ΔU最小)的处理器核作为当前任务的接收者;如果满足该条件的处理器核不止一个,那么再根据Best-Fit算法,从中选择利用率最大的处理器核作为该任务的接收者。 

说明书

说明书一种基于加速因子的多核实时系统任务划分方法
技术领域
本发明涉及的是一种任务划分方法,针对的是运行在多核平台上的实时系统,属于实时多核/多处理器系统任务调度领域。
背景技术
伴随着航空电子、箭载、星载系统在综合化计算技术的发展过程中对计算能力需求的提高,与这些系统相关的嵌入式实时计算系统日趋复杂,需要同时处理的任务数大为增长。目前在实际系统设计规划中提出了一种满足这种需求的方法,即采用多核处理器替代现有的单核/单处理器来提高这些硬实时系统的性能,但随之引发一些基础性和一般性问题亟待解决,其中一个很重要的问题就是现有系统中面向单处理器的实时调度算法如何映射到多处理单元环境中,并且在提高性能的同时保证计算的正确性和实时性。
从实时系统软件的发展来看,目前比较成熟的实时调度模型大都针对单核环境,如经典的RMS、DMS、EDF、LST等。而在多处理单元环境中,任务的调度变得更加复杂,需要综合考虑效率、公平、负载均衡等相关因素。近些年来针对多核/多处理器的实时调度研究也得到了广泛的重视,并成为了目前学术界研究的热点问题之一。多处理器任务调度目前主要有两种方法:划分方案和全局方案。在全局调度方案方法中,实时任务的每一次出现都在不同的处理器上执行,所有处理器上只运行同一种调度算法。任务在未执行完之前可以被抢占并且可以在不同的处理器间迁移在划分调度方案中,一个任务的所有出现都在同一处理器上执行,全部任务由任务分配算法预先划分到处理器;每一个处理器可以运行不同或者相同的单处理器任务调度算法。但是针对划分方案,调度器的职责不再像以前只执行任务调度。除了按照某些特定的调度算法将处理单元在不同的任务之间进行切换,调度器还必须在任务调度之前完成任务集在多个处理单元上的划分。
弹簧算法:Buttazzo等利用弹簧伸缩的原理把任务集合中的任务看成是串联的弹簧,每个任务都通过一个称之为弹性系数的参数来控制其周期的改变,从而达到调节其利用率的目的。
发明内容
本发明针对多核实时系统给出了一种基于加速因子的任务划分方法。
通常由于系统的资源有限,运行于同一计算系统的相关任务经常发生资源的竞争和共享,任务的执行并不是完全的相互独立。比如任意两个或多个任务在同一处理器或共享Cache的 处理器组上执行时,彼此之间会由于数据的相关性而带来不同程度的相互影响,可以称之为“群组效应”。这种影响体现在执行速度上既可以是促进,也可以是抑制,这种影响效果取决于任务本身的特性和调度算法。某些情况下由于任务之间数据相关性好,先执行的任务恰好把后续任务所需的数据调入到高速缓存,从而减少了Cache不命中和替换的次数,使得执行速度加快;而抑制效果则可能是由于先后执行的任务之间数据相关性差,顺序执行时需要频繁地对Cache行写回、替换操作,从而使执行速度降低。相对传统的单核/单处理器计算环境,多处理单元的计算平台更加具有灵活性,可以根据任务的“群组效应”将任务集合进行划分,然后在各个处理器核上单独调度执行。
以下将引入相关定义和模型进行阐述。
MAMORTS任务模型:在一个实时系统多处理器多核平台中,定义P={p1,p2,p3,……,pm}(m>1)为一个具有m个结构相同的处理器芯片集合,构成SMP结构。CPU通过高速通信接口互连,处理器之间的通信开销忽略不计。集合中的单个处理器芯片pi={qi1,qi2,……,qin}(n>1,1≤i≤n)为同构处理器核心构成的集合,qij(1≤i≤m,1≤j≤n)为基于SMT或者CMP架构的多线程/多核处理器核。
定义系统中具有实时任务集合Ψ={Ψ1,Ψ2,……,Ψk}(k≤m*n),Ψ1到Ψk为Ψ中的子任务集,被分配到不同的处理器核qij上执行。在任何一个处理器qij上所运行的子任务集Ψt={τ1,τ2,τ3…τl}(l>0,1≤t≤k),均满足如下的约束条件:
(C1)所有的任务请求都是周期性的,具有硬时限要求,即必须在限定的时限内完成;
(C2)任务的时限要求仅限于任务必须在该任务的下一个请求发生之前完成;
(C3)任务之间可以不是独立的,每个任务的请求可以依赖于其他任务请求的开始完成,可以存在访存空间有交集的任务集合;
(C4)调度和任务切换的时间忽略不计;
(C5)任务之间是可抢占的;
(C6)每个任务单独运行时的运行时间是确定的,这里任务的运行时间是指处理器在无中断情况下用于处理该任务的时间Ci;考虑子任务集Ψt={τ1,τ2,τ3…τl}中任务可能两两之间有加速因子关系,此时不再一一考虑其他所有任务对于某一特定任务的加速作用,而是考虑该子任务集作为一个整体对于该子集所有任务的加速作用。也就是说,此时该子任务集Ψt的加速因子对于各子任务集,在加速因子起作用时,子任务集的运行时间是确定的,即Σi=1kci=Σi=1kci/λt]]>是确定的;
在弹簧模型调度算法中,弹性系数是确定任务利用率的关键,这个参数实际上决定了任务被调整的程度,但是没有一个统一的量化方法来确定它,甚至根本没有一个一般性可用的 弹性系数可以利用。本发明中加速因子作为弹性系数,提出一种新的任务划分方法,通过加速效应压缩部分任务的CPU利用率,改善全局的可调度性。
加速因子λ:在多核计算模型下,考虑到任务的相互影响,任务Ti的实际执行时间将Ci不再为常数,而是会受到某个与其有相关性的任务Tj或者任务的集合Si的影响。因此,当考虑将任务Ti的划分时,若某个核的现有调度任务集中存在与之具有相关性的任务Tj,则Ti的执行会获得加速,即存在所谓的加速因子λ使得执行时间Ci缩短为从而减少最终的处理器核的利用率Ui。这里加速因子λ实际上给出了一种具体的弹簧算法弹性系数的定义和计算方法。因此,当分配任务Ti到某个处理器核上时,可以考虑这种加速效应从而基于弹簧算法来改善可调度性。在实际中,可以通过模拟和测试准确地得到两两任务间的加速因子;但是在完成划分后,并不能保证每一个处理器核上分配的任务数不超过2个。对于某个处理器核,如果其当前任务数多于两个,那么将不能确定新任务Ti在该集合中由于其他所有任务的影响而得到的加速因子,该方法将无法完成划分。于是,本发明进一步给出了针对任务集的整体加速效应的描述。
任务集的加速因子:如前所述,在本方法中如果完全基于任务两两之间的加速因子进行任务划分,那么在将一个新的任务τt添加到处理器核qij时,为了考虑τt的加入对qij原有的子任务集Ψk的影响,需要逐个考虑τt对Ψk中每一个任务的加速因子,而且两两任务间的加速因子并不能保证在集合中存在其他任务干扰的情况下,任务集合环境下仍然与测量环境下的λti保持一致。因此,在本发明中实际采用的是基于任务集的加速因子根据MAMORTS模型的约束条件,任一个给定子任务集的加速因子保持不变。基于任务集的加速因子方便用于对任务集进行可调度性判定,但是相对于两两任务间的加速因子在测量时难度更大,需要覆盖给定任务集中的任意一个子集。
对于一个任务数为4的集合,需要测试的所有子任务集合如下表,每一个任务集对应一个加速因子,如下表:
  子任务集合  加速因子  {τ1}  {τ2}  {τ3}  {τ4}  {τ1,τ2}  {τ1,τ3}  {τ1,τ4}
  {τ2,τ3}  {τ2,τ4}  {τ3,τ4}  {τ1,τ2,τ3}  {τ1,τ2,τ4}  {τ1,τ3,τ4}  {τ2,τ3,τ4}  {τ1,τ2,τ3,τ4}
表1
在MAMORTS任务模型中,任务集合Ψt={τ1,τ2,τ3…τn}的整体加速因子只要任务集合确定,则T也是确定的,因为每一个任务的执行时间都确定;而对于确定的任务集,在特定的调度算法下任务执行的相对顺序也可以确定,但是其实际执行时间并不等于理论执行时间也不等于因为各个任务的周期不同,在固定时间段内执行的次数也不一样。因此,通过给出任务集整体的理论执行时间T″和实际执行时间T″′对加速因子进行修正,得到在本方法中,T″是根据任务在RM算法下的实际执行顺序进行理论时间累加得到,T″′则是通过实际任务集在RM调度算法下调度执行测试得出。在下文中出现的λt如果没做特别说明则指的是修正后的加速因子。要确定一个任务数量为n的任务集的所有可能的子任务集的加速因子,需要进行次对不同子任务集分别进行加速因子的测量。所以,考虑工程实际中该方法的可行性,本发明对所给出的划分方法增加一个约束,即:
任意处理器核上可分配的任务数不超过某个限制L,在处理器核数量为k的时候,总的任务数量n必须满足:n≤k*L    (1)
最终得到带影响距离L的任务集加速因子。
带影响距离L的任务集加速因子:在上述基于任务集的加速因子的描述中可知,为了获得基于任务集的加速因子表,在任务装载前应进行大量的任务集测试,测试的次数是O(2n),而且随着任务集的扩张,单次测试所花费的代价越来越大(同一子任务集的测试可能需要考虑不同的任务排列顺序)。为了降低测试任务集加速因子的难度,可以考虑根据程序的局部性原理设定一个影响距离L,该距离L描述的是任务数量。
在任务数量为M的子任务集中:
(1)如果M>L,违背了约束条件(1),认为该任务集在任一处理器核上都不可调度;
(2)如果M≤L,则可以完整的考虑该子任务集的整体加速因子,这正是所期望的。
特殊情况下,如果L=N,带影响距离L的基于任务集的加速因子退化为不带影响距离的任务集的加速因子。
此时,N=5,L=3时的加速因子表的形式如下:

表2
加速因子表的建立:该加速因子表是一个一维的表格,每个子任务集合Ψt对应一个加速因子λi。从函数的角度看,该表可表示为函数δ:Ψt→λi,Ψt为任务集合域,λi为加速因子域,函数δ完成从给定子任务集到加速因子的映射,获取该子任务集合的加速因子。理想情况下,δ的定义域应该包含任务集合ψ={τ1,τ2,τ3…τn}中所有可能的子集Ψi,1≤i≤2n。当n很大时,对于逐个子集进行的测试太多,而且会占用大量的存储空间,所以提出了带影响距离L的加速因子表,利用L来限制需要测试和存储的子任务集的长度,即任务数量大于L的子集不进行测试。
BF-λ算法:该算法是考虑了加速因子λ的Best-Fit算法,目的是从k个处理器核当中选出最适合当前任务的处理器核j(1≤j≤k)。在为任务τt分配处理器核的时候,优先考虑那些既可满足可调度条件:
(U<n(21/n-1)=L(n),(U为任务集ψ的处理器利用率,n为ψ中任务数量)①
且λ加速效果又最显著(表现为新任务带来的处理器核利用率增量ΔU最小)的处理器核作为当前任务的接收者;如果满足该条件的处理器核不止一个,那么再根据Best-Fit算法,从中选择利用率最大的处理器核作为该任务的接收者。
该查找算法的执行步骤为:
步骤1:接收一个待划分的任务τl,初始化目标处理器核编号j=0,顺序查找的处理器核起始编号i=1(k为处理器核的数量);
步骤2:获取处理器核i当前已分配的任务集合Ψi,Ψi的任务数量为m,计算任务集合Ψi在处理器核i的利用率Ui。
步骤2.1:如果i>k,所有的处理器核都已经遍历,结束查找,返回查找结果j;
步骤2.2:如果m>L,根据约束条件(1),不能将任务τl分配到当前处理器核,执行步骤3;否则,查找加速因子表得到新的任务集合(Ψi+{τl})的加速因子λi,以及计算加入任务τl后的利用率计算利用率增量
步骤2.3:根据RM调度算法的判定条件①判断任务集(Ψi+{τl})在处理器核i上是否可调度:如果不可调度,执行步骤3;否则,结束查找,返回最佳处理器核的编号j,;
步骤2.4:进行核i与核j的利用率判优:如果利用率增量ΔUi<ΔUj,则设置处理器核i为当前最佳的任务接收者,令j=i;执行步骤3;如果利用率增量ΔUi=ΔUj,则执行步骤2.5;
步骤2.5:执行Best-Fit,如果Ui>Uj,则j=i;这一步是采用贪心算法在满足可调度的情况下,使得处理器核的利用率尽可能高;
步骤3:i=i+1,执行步骤2.1,查看下一个处理器核;
BF-λ划分方法:这一划分方法是在Best-Fit装箱算法上考虑λ加速因子而得到的一种任 务划分方法,该方法的核心算法是BF-λ算法。对于该划分方法的简单说明:
在具有k个处理器核的计算环境中,针对任务数量为n的总任务集S={τ1,τ2,……,τn},该方法试图找到一种合适的方案将S划分为k个子集:对于每一个核i(1≤i≤k),分配的任务子集为Ψi,则有S={Ψ1,Ψ2,…Ψi,…Ψk};如果不存在这么一种划分,则判定任务集S不满足该方法的可调度条件。
该方法的实施步骤如下:
步骤1:初始化,清空每一个处理器核的任务集合,设置Ψi=Φ,(1≤i≤k);同时,完成任务集合S的按利用率递减DU排序,即对于S中任何两个任务的τp和τq,(1≤p≤q≤n),,都有Up≥Uq;
步骤2:从S中按照利用率非增序获取一个任务τl;然后执行BF-λ算法,为任务τl寻找一个最佳的处理器核,设其编号为j(1≤j≤k),则有j=BF-λ(τl);
步骤3:如果步骤2中得到j=0,则BF-λ算法查找失败,说明此时没有可接收任务τl的处理器核,此次划分失败,结束;否则将τl分配到处理器核j,更新j的任务子集Ψj=Ψj+{τl},更新总任务集S=S-{τl};
步骤4:如果S≠Φ,即任务集S中还存在待划分的任务,执行步骤2;否则,输出划分方案Ψi(1≤i≤k),此次划分成功,结束。
本发明在RM算法、弹簧算法和Best-Fit装箱算法的基础上,提出了一种基于加速因子的多核实时任务划分方法,相比原有的任务划分方法,具有以下优点和效果:
1)考虑了任务执行过程中的相互影响,真实的描述任务执行环境
现有的划分策略没有考虑任务之间的相互影响,比如传统的装箱算法下次适合(Next-Fit)算法、最先适合(First-Fit)算法、最好(Best-Fit)适合算法等只考虑了任务的绝对属性。但是实际中由于资源竞争和共享所造成的任务间的相互影响也可以作为参数更真实地描述任务的执行环境。
2)可以提高部分任务集合的RM可调度性
在RMS模型下,任务集的可调度判定条件是U<n(21/n-1)=L(n),(U为任务集ψ的处理器利用率,n为ψ中任务数量)。利用率U的计算没有考虑任务间的影响所带来的执行时间变化这一弹簧压缩效应。如果考虑这一加速效应,计算出的利用率U′对于某些任务集会有U′<U,从而改善任务集的可调度性。
附图说明
附图1:是本发明中基于加速因子的多核实时任务划分功能模块图
附图2:是基于加速因子的改进Best-Fit算法流程图
附图3:是本发明中基于加速因子的多核实时任务划分方法的流程图
具体实施方式
在下述具体实施示例中,结合附图对本发明进行进一步的详细说明。
如图1所示,本发明设计的基于加速因子的多核实时任务划分方法在功能上划分为3个模块:划分控制模块1,任务选择模块2,以及根据BF-λ算法进行处理器核选择的模块3。其中,模块3还包括以下几个功能模块:查找控制模块31,加速因子λ计算模块32,以及处理单元利用率计算模块33,其中,查找控制模块31在接收到新任务τl后控制对处理器核的遍历,加速因子λ计算模块32进行加速因子表的查找,获取任务集的加速因子;处理器核利用率计算模块33根据任务集和对应的加速因子计算处理单元的利用率。
划分控制模块1主要负责各个处理单元任务集的初始化和初始任务集合S的遍历。每次遍历都使S中减少一个元素,直到S变成空集或者在变成空集之前由于某个任务不可调度导致划分方法不能继续进行而失败。如果划分成功,则得到了分配到每一个核的任务子集构成的集合Ψ={Ψ1,Ψ2,……,Ψk}=S。
任务选择模块2主要配合模块1负责选择下一个执行分配的任务。任务的顺序可以是随机的,也可以是有序的(按照利用率递减DU,执行时间递减DC等)。本方法采用利用率递减排序DU,每一次的任务选取都选择集合S中利用率最大的任务。
处理器核选择模块3配合模块1完成对指定的任务进行处理器核选择,选取的算法是BF-λ算法。如果存在合适的处理器核,则给出其编号,编号为0表示不存在可以接收当前任务的处理器核,此时模块1可以宣布对于S的划分失败。
针对k个处理器核的任务集合S(S中元素的个数为n)的划分,本发明提出的基于加速因子的多核实时任务划分方法包含以下步骤:
步骤1:初始化,清空每一个处理器核i(1≤i≤k)的任务集,设置Ψi=Φ;同时,完成任务集合S的按利用率递减DU排序,即对于S中任何两个任务的τp和τq,(1≤p≤q≤n),,都有Up≥Uq;
步骤2:从S中按照利用率非增序获取一个任务τl;然后按照BF-λ算法执行以下步骤为任务τl寻找一个最佳的处理器核j;
步骤2.1:初始化目标处理器核编号j=0,以及顺序查找的起始处理器核编号i=1;
步骤2.2:获取处理器核i当前已分配的任务集合Ψi,Ψi的任务数量为m,计算任务集合Ψi在处理器核i的利用率Ui。
步骤2.2.1:如果i>k,所有的处理器核都已经遍历,结束查找,返回查找结果j;否则,执行步骤2.2.2;
步骤2.2.2:如果m>L,根据约束条件(1),不能将任务τl分配到当前处理器核,执行步骤2.3;否则,查找加速因子表得到新的任务集合(Ψi+{τl})的加速因子λi,以及计算加入任务τl后的利用率计算利用率增量执行下一步;
步骤2.2.3:根据RM调度算法的判定条件①判断任务集(Ψi+{τl})在核i上是否可调度:如果不可调度,执行步骤2.3;否则,结束查找,返回最佳处理器核的编号j;
步骤2.2.4:进行核i与核j的利用率判优:如果利用率增量ΔUi<ΔUj,则设置处理器核i为当前最佳的任务接收者,令j=i;执行步骤2.3;如果利用率增量ΔUi=ΔUj,则执行步骤2.2.5;
步骤2.2.5:执行Best-Fit匹配算法进行选择:如果Ui>Uj,则j=i;这一步是在满足可调度的情况下,使得处理器核的利用率尽可能高;
步骤2.3:i=i+1,继续查看下一个处理器核,执行步骤2.2.1;
步骤3:如果j=0,BF-λ算法查找失败,说明此时没有可接收任务τl的处理器核,此次划分失败,结束;否则,将τl分配到处理器核j,更新j的任务子集Ψj=Ψj+{τl},更新总任务集S=S-{τl};
步骤4:如果S≠Φ,执行步骤2;否则,输出划分方案Ψi(1≤i≤k),此次划分成功,结束。

一种基于加速因子的多核实时系统任务划分方法.pdf_第1页
第1页 / 共13页
一种基于加速因子的多核实时系统任务划分方法.pdf_第2页
第2页 / 共13页
一种基于加速因子的多核实时系统任务划分方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种基于加速因子的多核实时系统任务划分方法.pdf》由会员分享,可在线阅读,更多相关《一种基于加速因子的多核实时系统任务划分方法.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103473120 A(43)申请公布日 2013.12.25CN103473120A*CN103473120A*(21)申请号 201210572999.8(22)申请日 2012.12.25G06F 9/46(2006.01)(71)申请人北京航空航天大学地址 100191 北京市海淀区学院路37号(72)发明人张炯 龙其民 牛天放 李莹(54) 发明名称一种基于加速因子的多核实时系统任务划分方法(57) 摘要本发明基于RM实时任务调度算法,提出了一种考虑任务加速效应的多核实时任务的划分方法。在原有的任务划分策略基础上考虑任务在执行过程中的相互加速作用对CPU利用。

2、率的影响,从而找到弹簧算法中的一个可用弹簧系数进行任务执行时间的压缩,以提高任务集合的RM可调度性。在本发明中,任务的加速效应由加速因子表征。首先利用该加速因子对最好适合(Best-Fit)算法进行改进,得到BF-算法;然后利用BF-算法完成任务集合在多个处理器核上的划分。(51)Int.Cl.权利要求书1页 说明书8页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书8页 附图3页(10)申请公布号 CN 103473120 ACN 103473120 A1/1页21.描述任务相互影响的加速因子表的使用,其特征在于:对于一个任务数量为n的集合S,为任一任。

3、务子集建立从子集到加速因子的对应关系,该加速因子刻画的是任务间由于资源竞争和共享所造成的相互影响的程度或者相关性。该加速因子表的建立服务于基于任务加速因子的多核实时系统任务的划分,在具体的划分过程中通过任务的加速因子来决定任务的分组关系。2.基于加速因子的改进型最好适合(Best-Fit)算法BF-算法,其特征在于,实施如下步骤:步骤1:接收一个待划分的任务l,初始化目标处理器核编号j=0,顺序查找的处理器核起始编号i=1(k为处理器核的数量);步骤2:获取处理器核i当前已分配的任务集合i,i的任务数量为m,计算任务集合i在处理器核i的利用率Ui。步骤2.1:如果ik,所有的处理器核都已经遍历。

4、,结束查找,返回查找结果j;步骤2.2:查找加速因子表得到新的任务集合(i+l)的加速因子i,以及计算加入任务l后的利用率 计算利用率增量 步骤2.3:根据RM调度算法的判定条件判断任务集(i+l)在处理器核i上是否可调度:如果不可调度,执行步骤3;否则,结束查找,返回最佳处理器核的编号j,;步骤2.4:进行核i与核j的利用率判优:如果利用率增量UiUj,则j=i;这一步是采用贪心算法在满足可调度的情况下,使得处理器核的利用率尽可能高;步骤3:i=i+1,执行步骤2.1,查看下一个处理器核。3.基于加速因子的多核实时系统任务划分方法,其特征在于,实施如下步骤:步骤1:初始化,清空每一个处理器核。

5、的任务集合,设置i=,(1ik);同时,完成任务集合S的按利用率递减DU排序,即对于S中任何两个任务的p和q,(1pqn),都有UpUq;步骤2:从S中按照利用率非增序获取一个任务l;然后执行BF-算法,为任务l寻找一个最佳的处理器核,设其编号为j(1jk),则有j=BF-(l);步骤3:如果步骤2中得到j=0,则BF-算法查找失败,说明此时没有可接收任务l的处理器核,此次划分失败,结束;否则将l分配到处理器核j,更新j的任务子集j=j+l,更新总任务集S=S-l;步骤4:如果S,即任务集S中还存在待划分的任务,执行步骤2;否则,输出划分方案i(1ik),此次划分成功,结束。4.根据权利要求3。

6、所述的基于加速因子的多核实时系统任务划分方法,其特征在于,在所 述步骤2中,为某一任务l完成处理器核选择的具体为:在为任务l分配处理器核的时候,优先考虑那些既可满足可调度条件,且加速效果又最显著(表现为新任务带来的处理器核利用率增量U最小)的处理器核作为当前任务的接收者;如果满足该条件的处理器核不止一个,那么再根据Best-Fit算法,从中选择利用率最大的处理器核作为该任务的接收者。 权 利 要 求 书CN 103473120 A1/8页3一种基于加速因子的多核实时系统任务划分方法技术领域0001 本发明涉及的是一种任务划分方法,针对的是运行在多核平台上的实时系统,属于实时多核/多处理器系统任。

7、务调度领域。背景技术0002 伴随着航空电子、箭载、星载系统在综合化计算技术的发展过程中对计算能力需求的提高,与这些系统相关的嵌入式实时计算系统日趋复杂,需要同时处理的任务数大为增长。目前在实际系统设计规划中提出了一种满足这种需求的方法,即采用多核处理器替代现有的单核/单处理器来提高这些硬实时系统的性能,但随之引发一些基础性和一般性问题亟待解决,其中一个很重要的问题就是现有系统中面向单处理器的实时调度算法如何映射到多处理单元环境中,并且在提高性能的同时保证计算的正确性和实时性。0003 从实时系统软件的发展来看,目前比较成熟的实时调度模型大都针对单核环境,如经典的RMS、DMS、EDF、LST。

8、等。而在多处理单元环境中,任务的调度变得更加复杂,需要综合考虑效率、公平、负载均衡等相关因素。近些年来针对多核/多处理器的实时调度研究也得到了广泛的重视,并成为了目前学术界研究的热点问题之一。多处理器任务调度目前主要有两种方法:划分方案和全局方案。在全局调度方案方法中,实时任务的每一次出现都在不同的处理器上执行,所有处理器上只运行同一种调度算法。任务在未执行完之前可以被抢占并且可以在不同的处理器间迁移在划分调度方案中,一个任务的所有出现都在同一处理器上执行,全部任务由任务分配算法预先划分到处理器;每一个处理器可以运行不同或者相同的单处理器任务调度算法。但是针对划分方案,调度器的职责不再像以前只。

9、执行任务调度。除了按照某些特定的调度算法将处理单元在不同的任务之间进行切换,调度器还必须在任务调度之前完成任务集在多个处理单元上的划分。0004 弹簧算法:Buttazzo等利用弹簧伸缩的原理把任务集合中的任务看成是串联的弹簧,每个任务都通过一个称之为弹性系数的参数来控制其周期的改变,从而达到调节其利用率的目的。发明内容0005 本发明针对多核实时系统给出了一种基于加速因子的任务划分方法。0006 通常由于系统的资源有限,运行于同一计算系统的相关任务经常发生资源的竞争和共享,任务的执行并不是完全的相互独立。比如任意两个或多个任务在同一处理器或共享Cache的处理器组上执行时,彼此之间会由于数据。

10、的相关性而带来不同程度的相互影响,可以称之为“群组效应”。这种影响体现在执行速度上既可以是促进,也可以是抑制,这种影响效果取决于任务本身的特性和调度算法。某些情况下由于任务之间数据相关性好,先执行的任务恰好把后续任务所需的数据调入到高速缓存,从而减少了Cache不命中和替换的次数,使得执行速度加快;而抑制效果则可能是由于先后执行的任务之间数据相关性差,顺序执行时需要频繁地对Cache行写回、替换操作,从而使执行速度降低。相对传统的说 明 书CN 103473120 A2/8页4单核/单处理器计算环境,多处理单元的计算平台更加具有灵活性,可以根据任务的“群组效应”将任务集合进行划分,然后在各个处。

11、理器核上单独调度执行。0007 以下将引入相关定义和模型进行阐述。0008 MAMORTS任务模型:在一个实时系统多处理器多核平台中,定义P=p1,p2,p3,pm(m1)为一个具有m个结构相同的处理器芯片集合,构成SMP结构。CPU通过高速通信接口互连,处理器之间的通信开销忽略不计。集合中的单个处理器芯片pi=qi1,qi2,qin(n1,1in)为同构处理器核心构成的集合,qij(1im,1jn)为基于SMT或者CMP架构的多线程/多核处理器核。0009 定义系统中具有实时任务集合=1,2,k(km*n),1到k为中的子任务集,被分配到不同的处理器核qij上执行。在任何一个处理器qij上所。

12、运行的子任务集t=1,2,3l(l0,1tk),均满足如下的约束条件:0010 (C1)所有的任务请求都是周期性的,具有硬时限要求,即必须在限定的时限内完成;0011 (C2)任务的时限要求仅限于任务必须在该任务的下一个请求发生之前完成;0012 (C3)任务之间可以不是独立的,每个任务的请求可以依赖于其他任务请求的开始完成,可以存在访存空间有交集的任务集合;0013 (C4)调度和任务切换的时间忽略不计;0014 (C5)任务之间是可抢占的;0015 (C6)每个任务单独运行时的运行时间是确定的,这里任务的运行时间是指处理器在无中断情况下用于处理该任务的时间Ci;考虑子任务集t=1,2,3l。

13、中任务可能两两之间有加速因子关系,此时不再一一考虑其他所有任务对于某一特定任务的加速作用,而是考虑该子任务集作为一个整体对于该子集所有任务的加速作用。也就是说,此时该子任务集t的加速因子对于各子任务集,在加速因子起作用时,子任务集的运行时间是确定的,即是确定的;0016 在弹簧模型调度算法中,弹性系数是确定任务利用率的关键,这个参数实际上决定了任务被调整的程度,但是没有一个统一的量化方法来确定它,甚至根本没有一个一般性可用的弹性系数可以利用。本发明中加速因子作为弹性系数,提出一种新的任务划分方法,通过加速效应压缩部分任务的CPU利用率,改善全局的可调度性。0017 加速因子:在多核计算模型下,。

14、考虑到任务的相互影响,任务Ti的实际执行时间将Ci不再为常数,而是会受到某个与其有相关性的任务Tj或者任务的集合Si的影响。因此,当考虑将任务Ti的划分时,若某个核的现有调度任务集中存在与之具有相关性的任务Tj,则Ti的执行会获得加速,即存在所谓的加速因子使得执行时间Ci缩短为从而减少最终的处理器核的利用率Ui。这里加速因子实际上给出了一种具体的弹簧算法弹性系数的定义和计算方法。因此,当分配任务Ti到某个处理器核上时,可以考虑这种加速效应从而基于弹簧算法来改善可调度性。在实际中,可以通过模拟和测试准确地得到两两任务间的加速因子;但是在完成划分后,并不能保证每一个处理器核上分配的任务数不超过2个。

15、。对于某个处理器核,如果其当前任务数多于两个,那么将不能确定新任务Ti在该集合中由于其他所有任务的影响而得到的加速因子,该方法将无法完成划分。于是,本发说 明 书CN 103473120 A3/8页5明进一步给出了针对任务集的整体加速效应的描述。0018 任务集的加速因子:如前所述,在本方法中如果完全基于任务两两之间的加速因子进行任务划分,那么在将一个新的任务t添加到处理器核qij时,为了考虑t的加入对qij原有的子任务集k的影响,需要逐个考虑t对k中每一个任务的加速因子,而且两两任务间的加速因子并不能保证在集合中存在其他任务干扰的情况下,任务集合环境下仍然与测量环境下的ti保持一致。因此,在。

16、本发明中实际采用的是基于任务集的加速因子根据MAMORTS模型的约束条件,任一个给定子任务集的加速因子保持不变。基于任务集的加速因子方便用于对任务集进行可调度性判定,但是相对于两两任务间的加速因子在测量时难度更大,需要覆盖给定任务集中的任意一个子集。0019 对于一个任务数为4的集合,需要测试的所有子任务集合如下表,每一个任务集对应一个加速因子,如下表:0020 子任务集合 加速因子12341,21,31,42,32,43,41,2,31,2,41,3,42,3,41,2,3,4说 明 书CN 103473120 A4/8页60021 0022 表10023 在MAMORTS任务模型中,任务集。

17、合t=1,2,3n的整体加速因子只要任务集合确定,则T也是确定的,因为每一个任务的执行时间都确定;而对于确定的任务集,在特定的调度算法下任务执行的相对顺序也可以确定,但是其实际执行时间并不等于理论执行时间也不等于因为各个任务的周期不同,在固定时间段内执行的次数也不一样。因此,通过给出任务集整体的理论执行时间T和实际执行时间T对加速因子进行修正,得到在本方法中,T是根据任务在RM算法下的实际执行顺序进行理论时间累加得到,T则是通过实际任务集在RM调度算法下调度执行测试得出。在下文中出现的t如果没做特别说明则指的是修正后的加速因子。要确定一个任务数量为n的任务集的所有可能的子任务集的加速因子,需要。

18、进行次对不同子任务集分别进行加速因子的测量。所以,考虑工程实际中该方法的可行性,本发明对所给出的划分方法增加一个约束,即:0024 任意处理器核上可分配的任务数不超过某个限制L,在处理器核数量为k的时候,总的任务数量n必须满足:nk*L (1)0025 最终得到带影响距离L的任务集加速因子。0026 带影响距离L的任务集加速因子:在上述基于任务集的加速因子的描述中可知,为了获得基于任务集的加速因子表,在任务装载前应进行大量的任务集测试,测试的次数是O(2n),而且随着任务集的扩张,单次测试所花费的代价越来越大(同一子任务集的测试可能需要考虑不同的任务排列顺序)。为了降低测试任务集加速因子的难度。

19、,可以考虑根据程序的局部性原理设定一个影响距离L,该距离L描述的是任务数量。0027 在任务数量为M的子任务集中:0028 (1)如果ML,违背了约束条件(1),认为该任务集在任一处理器核上都不可调度;0029 (2)如果ML,则可以完整的考虑该子任务集的整体加速因子,这正是所期望的。0030 特殊情况下,如果L=N,带影响距离L的基于任务集的加速因子退化为不带影响距离的任务集的加速因子。0031 此时,N=5,L=3时的加速因子表的形式如下:说 明 书CN 103473120 A5/8页70032 0033 表20034 加速因子表的建立:该加速因子表是一个一维的表格,每个子任务集合t对应一。

20、个加速因子i。从函数的角度看,该表可表示为函数:ti,t为任务集合域,i为加速因子域,函数完成从给定子任务集到加速因子的映射,获取该子任务集合的加速因子。理想情况下,的定义域应该包含任务集合=1,2,3n中所有可能的子集i,1i2n。当n很大时,对于逐个子集进行的测试太多,而且会占用大量的存储说 明 书CN 103473120 A6/8页8空间,所以提出了带影响距离L的加速因子表,利用L来限制需要测试和存储的子任务集的长度,即任务数量大于L的子集不进行测试。0035 BF-算法:该算法是考虑了加速因子的Best-Fit算法,目的是从k个处理器核当中选出最适合当前任务的处理器核j(1jk)。在为。

21、任务t分配处理器核的时候,优先考虑那些既可满足可调度条件:0036 (Uk,所有的处理器核都已经遍历,结束查找,返回查找结果j;0042 步骤2.2:如果mL,根据约束条件(1),不能将任务l分配到当前处理器核,执行步骤3;否则,查找加速因子表得到新的任务集合(i+l)的加速因子i,以及计算加入任务l后的利用率计算利用率增量0043 步骤2.3:根据RM调度算法的判定条件判断任务集(i+l)在处理器核i上是否可调度:如果不可调度,执行步骤3;否则,结束查找,返回最佳处理器核的编号j,;0044 步骤2.4:进行核i与核j的利用率判优:如果利用率增量UiUj,则j=i;这一步是采用贪心算法在满足。

22、可调度的情况下,使得处理器核的利用率尽可能高;0046 步骤3:i=i+1,执行步骤2.1,查看下一个处理器核;0047 BF-划分方法:这一划分方法是在Best-Fit装箱算法上考虑加速因子而得到的一种任务划分方法,该方法的核心算法是BF-算法。对于该划分方法的简单说明:0048 在具有k个处理器核的计算环境中,针对任务数量为n的总任务集S=1,2,n,该方法试图找到一种合适的方案将S划分为k个子集:对于每一个核i(1ik),分配的任务子集为i,则有S=1,2,i,k;如果不存在这么一种划分,则判定任务集S不满足该方法的可调度条件。0049 该方法的实施步骤如下:0050 步骤1:初始化,清。

23、空每一个处理器核的任务集合,设置i=,(1ik);同时,完成任务集合S的按利用率递减DU排序,即对于S中任何两个任务的p和q,(1pqn),都有UpUq;0051 步骤2:从S中按照利用率非增序获取一个任务l;然后执行BF-算法,为任务l寻找一个最佳的处理器核,设其编号为j(1jk),则有j=BF-(l);0052 步骤3:如果步骤2中得到j=0,则BF-算法查找失败,说明此时没有可接收任说 明 书CN 103473120 A7/8页9务l的处理器核,此次划分失败,结束;否则将l分配到处理器核j,更新j的任务子集j=j+l,更新总任务集S=S-l;0053 步骤4:如果S,即任务集S中还存在待。

24、划分的任务,执行步骤2;否则,输出划分方案i(1ik),此次划分成功,结束。0054 本发明在RM算法、弹簧算法和Best-Fit装箱算法的基础上,提出了一种基于加速因子的多核实时任务划分方法,相比原有的任务划分方法,具有以下优点和效果:0055 1)考虑了任务执行过程中的相互影响,真实的描述任务执行环境0056 现有的划分策略没有考虑任务之间的相互影响,比如传统的装箱算法下次适合(Next-Fit)算法、最先适合(First-Fit)算法、最好(Best-Fit)适合算法等只考虑了任务的绝对属性。但是实际中由于资源竞争和共享所造成的任务间的相互影响也可以作为参数更真实地描述任务的执行环境。0。

25、057 2)可以提高部分任务集合的RM可调度性0058 在RMS模型下,任务集的可调度判定条件是Uk,所有的处理器核都已经遍历,结束查找,返回查找结果j;否则,执行步骤2.2.2;0073 步骤2.2.2:如果mL,根据约束条件(1),不能将任务l分配到当前处理器核,执行步骤2.3;否则,查找加速因子表得到新的任务集合(i+l)的加速因子i,以及计算加入任务l后的利用率计算利用率增量执行下一步;0074 步骤2.2.3:根据RM调度算法的判定条件判断任务集(i+l)在核i上是否可调度:如果不可调度,执行步骤2.3;否则,结束查找,返回最佳处理器核的编号j;0075 步骤2.2.4:进行核i与核j的利用率判优:如果利用率增量UiUj,则j=i;这一步是在满足可调度的情况下,使得处理器核的利用率尽可能高;0077 步骤2.3:i=i+1,继续查看下一个处理器核,执行步骤2.2.1;0078 步骤3:如果j0,BF-算法查找失败,说明此时没有可接收任务l的处理器核,此次划分失败,结束;否则,将l分配到处理器核j,更新j的任务子集j=j+l,更新总任务集S=S-l;0079 步骤4:如果S,执行步骤2;否则,输出划分方案i(1ik),此次划分成功,结束。说 明 书CN 103473120 A10。

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

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


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