CN109298920A - 基于准划分思想的混合关键任务调度方法 - Google Patents
基于准划分思想的混合关键任务调度方法 Download PDFInfo
- Publication number
- CN109298920A CN109298920A CN201810989318.5A CN201810989318A CN109298920A CN 109298920 A CN109298920 A CN 109298920A CN 201810989318 A CN201810989318 A CN 201810989318A CN 109298920 A CN109298920 A CN 109298920A
- Authority
- CN
- China
- Prior art keywords
- task
- core
- queue
- allocated
- rank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 239000000725 suspension Substances 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 abstract description 3
- 239000002699 waste material Substances 0.000 abstract description 2
- 239000013598 vector Substances 0.000 description 7
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 210000002700 urine Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本方法提出一种基于准划分思想的混合关键任务调度方法,和以往准划分思想不同的是本方法是依据混合关键系统的周期任务的关键参数,对混合关键任务进行合理的组织,将其中多数任务分配在固定处理器核上进行局部调度执行,其余的任务按照每个核利用率情况进行全局调度。在进行任务划分时,首先按照一定的均衡分配的调度方法,使各个关键级任务均匀地分配的各个处理器核,从而避免由于系统关键级的提升导致的任务重新划分浪费资源的情况。其次基于剩余预分配时间片额度的全局调度策略,不仅保证处理器核的高利用率,同时尽可能减少由于任务的多次迁移而带来的系统开销。
Description
技术领域
本发明属于嵌入式系统多核技术领域,尤其涉及一种基于准划分思想的混合关键任务调度方法。
背景技术
混合关键系统是在同一个嵌入式多核平台下集成多个安全关键任务。混合关键任务在不同时刻处于不同的安全关键级别。如何对多核平台下的混合关键级别任务进行统一调度,以保证这些任务能够根据自身的安全关键级别合理、顺利地得到执行,已经成为焦点问题。目前的混合关键任务调度研究焦点主要集中在某一个处理器核上的混合关键任务集的调度,例如基于资源任务划分方法、基于优先级的调度方法以及Slack-Aware方法。而对于混合关键系统中的任务集,如何根据混合关键系统的特点,将其合理地分配到各个处理器核,相关研究较少。
在嵌入式多核平台下,混合关键任务调度是一种多核实时调度。目前,针对相互独立的实时周期任务的多核实时调度算法包括全局调度算法和任务划分调度算法。全局调度算法的核利用率高,但迁移的开销很大。任务划分调度算法能够达到负载均衡,但核利用率较低。为了兼顾核的高利用率和负载均衡,目前常采用两种方法:一种方法是将任务划分看成装箱问题,通过采用启发式方法设立各种任务划分条件以提高核利用率,其难点在于如何设立任务划分条件,使核利用率达到最优;另一种是将任务划分和全局调度算法进行结合,以减少迁移开销,例如准划分调度(semi-partitioned scheduling)算法,该算法在理论和实际应用中优于任务划分和全局的调度算法,但如何结合才既能提高核利用率,又使负载均衡且开销又小便成为了难点。
本发明是将多核实时调度的准划分思想应用于混合关键系统,提出一种在满足混合关键系统要求的基础上,以寻求负载均衡以及最少迁移度和高利用率为目标进行任务分配的调度算法。
发明内容
本申请提供一种基于准划分思想的混合关键任务调度方法,解决在嵌入式多核平台下,混合关键系统具有多种安全级别的关键周期任务的实时调度问题。该方法不仅减少了现有技术中存在的由于迁移带来的过多开销问题,而且改善由于关键级别反转而造成的系统利用率低的问题。
为了达到上述目的,本发明的技术方案如下:
基于准划分思想的混合关键任务调度方法,具体包括以下步骤:
步骤1、对于具有M个处理器核的混合关键系统中n个周期性混合关键任务,按照基于负载均衡的分配方法对其进行局部划分和全局划分;
步骤2、按照基于高利用率的准划分方法对于全局调度队列中的每个任务进行全局调度;
步骤3、按照基于最少迁移度的准划分方法对系统中每一个处理器核在其运行周期内的任务预分配。在系统运行过程中,如果系统关键级别提升时,则执行步骤4,如果系统关键级别降低时,则执行步骤5;
步骤4、根据当系统关键级别提升时的任务负载均衡分配方法对系统中部分任务进行调整,转去执行步骤1;
步骤5、根据当系统关键级别降低时的任务负载均衡分配方法对系统中部分任务进行调整,转去执行步骤1。
进一步的,步骤1中的基于负载均衡的分配方法具体包括以下步骤:
步骤101、将n个待分配任务队列中的周期性混合关键任务,计算各个任务的最大利用率wi,并以此对待分配任务队列的任务进行降序排序;
步骤102、选择在系统当前关键级时利用率最低的处理器核corep(1≤p≤M),如果该处理器核利用率Up与待分配任务队列中的队首任务τi(1≤i≤n)的利用率ui之和小于等于1,则将任务τi加入到处理器核corep的局部就绪任务队列,并计算该任务在核运行周期θp内的执行时间片数δi,p,从待分配任务队列中删除任务τi,更新处理器核corep的利用率Up,否则,将任务τi从待分配任务队列中删除,将其加入到全局调度队列,重复第102步,直到待分配任务队列为空,算法结束。
进一步的,步骤2中的基于高利用率的准划分方法具体包括以下步骤:
步骤201、对于全局调度队列中的周期性混合关键任务,按照系统当前关键级别时任务的利用率进行降序排序;
步骤202、对于全局调度队列中的每一个任务τi,选择M个处理器核中剩余核利用率与该任务τi的利用率最接近的处理器核corep,计算在核运行周期θp内任务τi在处理器核corep上的可分配的执行时间片额度δi,p,并将其加入到该核的局部就绪任务队列;在核运行周期θp内任务τi的剩余执行时间片数按照同样方法分配到其它核上。
进一步的,步骤3中的基于最少迁移度的准划分方法具体包括以下步骤:
步骤301、计算处理器核corep的运行周期分段划分基数ωp;
步骤302、计算处理器核corep的运行周期内的预分配时间分段数υp;
步骤303、每个任务τi(0≤i≤np)的剩余预分配时间额度σi置为0,并设k=1,k表示预分配时间分段序号,1≤k≤υp;
步骤304、计算任务τi在第k个预分配时间分段上预分配的时间片数tsi,k;
步骤305、如果tsi,k≤δi,p,则计算任务τi在第k个预分配时间分段内实际预分配的时间片数dtsi,k,修改δi,p=δi,p-dtsi,k,同时,计算该任务的剩余预分配时间额度σi,否则dtsi,k=δi,p,修改δi,p=0,σi=0;同样方法,依次处理下一个任务,直到该核上局部就绪任务队列的所有任务都处理完毕;
步骤306、计算该核在运行周期的第k个预分配时间分段内实际已分配的时间片数cdtsk;
步骤307、如果cdtsk<ωp,则从{σ1,σ2,L,σnp}中选择其中的最大值σx(σx>0)对应的任务τx,将其dtsx,k的值加1,同时修改δx,p=δx,p-1,σx=σx-1;重复执行第306步,直到cdtsk=ωp或σx=0为止;
步骤308、完成下一个预分配时间分段的时间片分配,即k=k+1,如果k≤υp,则重复执行第304步;
步骤309、对于预分配时间分段内的时间片具体分配,根据任务到达时间,以可抢占方式,按照时限的先后进行分配。
进一步的,步骤4中的当系统关键级别提升时的任务负载均衡分配方法具体包括以下步骤:
步骤401、计算系统在关键级l下的系统利用率U(l),如果U(l)>M,那么,在当前系统关键级下,系统不可调度,算法结束;
步骤402、依次判断全局调度队列中的每一个任务的关键级别是否小于系统当前关键级别l(1≤l≤L),如果是,则将该任务从全局调度队列中删除,同时,将其加入到任务挂起队列,否则,将任务从全局调度队列中删除,同时,将其加入到待分配任务队列;
步骤403、判断处理器核corep(1≤p≤M)上已经分配的所有任务的关键级别是否小于系统当前关键级别l,如果是,则将该任务从该处理器核的局部就绪任务队列中删除,同时,将其加入到任务挂起队列;
步骤404、按照系统当前的关键级别,重新计算该处理器核的利用率Up;如果Up大于1,则依次将该核局部就绪任务队列中在当前系统关键级别下利用率最低的任务删除,将其加入到待分配任务队列,直到Up小于等于1;
步骤405、处理下一个处理器核,重复第402步,直到所有的处理器核处理结束;
步骤406、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
进一步的,步骤5中的当系统关键级别降低时的任务负载均衡分配方法具体包括以下步骤:
步骤501、依次判断任务挂起队列中的每一个任务的关键级别是否大于等于系统当前关键级别,如果是,则将该任务从任务挂起队列中删除,同时,将其加入到待分配任务队列;
步骤502、依次将全局调度队列中的每一个任务从全局调度队列中删除,同时,将其加入到待分配任务队列;
步骤503、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
本发明的有益效果:
1.本发明是在多核实时调度算法的基础上,结合混合关键系统的特点,提出一种针对相互独立的混合关键周期任务集进行多核实时调度的方法,该方法的在保证混合关键任务能够根据自身的安全关键级别合理、顺利地得到执行的前提下,以多核负载均衡为设计基础,提高处理器核的利用率和尽可能减少任务的迁移度。
2.嵌入式多核平台下,研究多级别的混合关键系统实时任务的准划分调度策略对于安全性、实时性要求很高的混合关键系统领域具有重要的意义,本发明的有益效果是该方法在国家嵌入式设备的安全领域,尤其在航空航天、交通运输、国防军事等重要领域,有着广泛的应用前景和重要的价值。
附图说明
图1基于负载均衡的分配算法流程图;
图2系统关键级别提升时任务的负载均衡分配算法流程图;
图3系统关键级别降低时任务的负载均衡分配算法流程图;
图4基于高利用率的准划分分配算法流程图;
图5基于最少迁移度的准划分分配算法流程图;
图6实例在本算法下处理器核的执行情况。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
本方法是在嵌入式多核平台下,在多核实时调度算法的基础上,结合混合关键系统的特点,提出一种针对相互独立的混合关键周期任务集进行多核实时调度的方法——基于剩余预分配时间片额度的准划分调度(based on remaining pre-allocated timeslice quota semi-partitioned scheduling,RPTQSS)方法。
本方法所提出的准划分思想同样是采用全局调度和局部划分调度相结合的一种混合关键任务调度方法。然而和以往准划分思想不同的是本方法是依据混合关键系统的周期任务的关键参数,对混合关键任务进行合理的组织,将其中多数任务分配在固定处理器核上进行局部调度执行,其余的任务按照每个核利用率情况进行全局调度。在进行任务划分时,首先按照一定的均衡分配的调度方法,使各个关键级任务均匀地分配的各个处理器核,从而避免由于系统关键级的提升导致的任务重新划分浪费资源的情况。其次基于剩余预分配时间片额度的全局调度策略,不仅保证处理器核的高利用率,同时尽可能减少由于任务的多次迁移而带来的系统开销。
本发明方法完整的步骤:
本发明首先给出了混合关键系统模型的调度模型。其次,针对该系统的混合关键周期任务提出一种基于剩余预分配时间片额度的准划分调度(based on remaining pre-allocated time slice quota semi-partitioned scheduling,RPTQSS)方法,该方法不仅全面考虑了各个关键级别任务在各个核上的均衡分配,避免系统关键级别提升后出现的处理器“饥饿”现象,而且在全局调度任务时,尽可能将任务的作业分配到同一个处理器核上,将全局任务作业在不同处理器之间的迁移数量减少到最小。
1.混合关键系统模型
在混合关键系统中,一方面,系统在不同时刻具有不同的关键级别;另一方面,在不同时刻,每个job也具有相应的关键级别。在一个具有k个级别的混合关键系统中,任何一个job可以用一个4维向量表示:Jj=(rj,dj,xj,cj),其中,rj表示job的到达时刻,也就是发布时刻;dj表示job的时限,显然,dj>rj;xj∈{1,2,……,k}是指该job在某一时刻的关键级别,在某一确定的时刻,它的值也是确定的;cj是一个k维向量:cj={cj(1),cj(2),……,cj(k)},用来表示该job在每个级别对应的最坏执行时间WCET,在此假设cj(1)≤cj(2)≤…≤cj(k)。为了满足实时系统的特性,对于任务集合中的每一个job,必须在时限到来之前执行完毕,即实际执行完毕的时刻要小于时限。
如果当前系统处于l关键级别,那么在整个系统运行过程中,处于l级别或大于l级别的所有job都必须在时限时刻到来之前执行完毕。即首先要保证l级别或大于l级别任务的执行,其次考虑小于l级别的任务的执行。
在具有k个级别的混和关键任务系统中,每一个任务(task)可以用一个3维向量来表示:Ti=(ci,pi,xi)。其中,ci是一个k维向量,用来分别表示该任务处于各个级别下所对应的最坏执行时间,即ci={ci(1),ci(2),……,ci(k)};pi则表示该task的执行周期,也是连续两次job被发布的最短时间间隔;xi(xi∈{1,2,…,k})表示该task所处的级别,在某一确定的时刻,它的值也是确定的。同样在task模型中,假设ci(1)≤ci(2)≤…≤ci(k)。
在混和安全关键任务模型中,每一个任务Ti可以隐含无数个job,这些job每隔pi个时间间隔发布并执行一次。每次job发布之后,它的发布时刻ri就确定了,其时限规定为该job发布之时经过pi之后的时刻,即di=ri+pi。至于关键级别,该job的关键级别与该任务的关键级别相同,即为xi。这些job的ci与该任务的ci同样保持一致。因此,根据task这个3维向量,便能够确定所有已发布job的4维向量,进而全面确定这些job的参数,根据后文介绍的调度算法即可对这些job进行调度。
在具有k个级别的混合关键任务系统中,设T={T1,T2,…,Tn}表示该系统中的任务集合。由于本文主要研究循环任务系统,因此后文假定该混合关键任务系统中一次循环中共有n个任务:Ti=(ci,pi,xi),(i=1,2,…,n),其中,ci表示该任务的最坏执行时间;pi表示该任务的执行周期;xi表示该任务在此混合关键任务系统中的关键级别。设J={J1,J2,…,Jm}表示该系统中的job集合,即该混合关键任务系统一次循环作业过程中共需执行m个job。每个job亦可表示为Jj=(rj,dj,xj,cj),(1≤j≤n)。其中,rj表示该job的发布时刻;dj表示该job的时限,可以通过其发布时间以及最坏执行时间计算得到;xj表示该job所处的关键级别,与其所属任务当前关键级别保持一致。cj是一个k维向量,表示该job在不同关键级别下的最差执行时间,它由该job所属关键任务的最坏执行时间得到。
2.相关定义、定理和结论
定义1任务的最大利用率wi是指任务τi在其最高关键级L对应的WECT值与其周期的比值,即wi=ci(L)/pi。
定义2处理器核corep的利用率Up定义为在当前系统关键级别l下,该核上已分配的所有任务的利用率之和,即
定义3如果系统当前关键级为l(1≤l≤L),那么系统中所有关键级别大于或等于l的任务在系统当前关键级下的利用率之和,称为系统在关键级l下的系统利用率U(l)。
定义4对于处理器核corep上的n个混合关键周期任务,定义处理器核corep的运行周期θp为此n个任务周期的最小公倍数,即θp=[p1,p2,L,pn]。
定义5对于处理器核corep上的n个混合关键周期任务,定义其中任何一个任务τi在该核运行周期内的执行作业量为其中,ei为作业执行时间,pi为作业周期。
定义6若某处理器核corep上已经分配了q个任务,则定义此处理器核在[0,θp]内的相对剩余时间为
定义7对于系统中任一处理器核corep,在其公共周期[0,θp]内,定义在此核上任何一个任务τi执行时间比为fi,p=si,p/ui(l)。
定义8对于系统中任一处理器核corep,在其公共周期[0,θp]内,定义在此核上任何一个任务τi的执行时间片额度为δi,p=fi,p×e′i。
定理1若某任务集中的所有任务在[0,θp]内,按照定义6分配在处理器核corep上,那么该分配方案是满利用率,即:
证明:
由定义6可知故
定义9处理器核corep上的n个混合关键周期任务周期的最大值,即max(p1,p2,L,pn),定义为处理器核corep运行周期的分段划分基数,用ωp表示。处理器核corep的运行周期以ωp为依据被划分为若干个预分配时间分段,其中,预分配时间分段数υp=θp/ωp。
定义10对于处理器核corep上的任何一个混合关键周期任务τi,在核运行周期的第k个预分配时间分段内预分配的时间片数tsi,k定义为在该任务τi在当前系统关键级时的利用率ui与该核运行周期的分段划分基数ωp的乘积,即tsi,k=σi+ui×ωp,其中,σi(-1<σi<1)为之前的预分配时间分段内任务τi的剩余预分配时间额度,对于核运行周期的第一个预分配时间分段,其值为0。
定义11对于处理器核corep上的任何一个混合关键周期任务τi,其tsi,k取整后的值,定义为任务τi在核运行周期的第k个预分配时间分段内实际预分配的时间片数,用dtsi,k表示,即dtsi,k=[tsi,k]。
定义12对于处理器核corep上的任何一个混合关键周期任务τi,其tsi,k与dtsi,k之间的差值称为任务τi的剩余预分配时间额度,用σi表示,即σi=tsi,k-dtsi,k,显然,(-1<σi<1)。
定义13对于处理器核corep在其运行周期的第k个预分配时间分段内,其上所有任务的实际预分配的时间片数之和,称为该核在运行周期的第k个预分配时间分段内实际已分配的时间片数,用cdtsk表示,即
3.举例
例如:假设系统中有2个处理器核(处理器核1和处理器核2),具有两个系统关键级别1和2。当前已有8个混合关键周期任务分别分配到2个处理器核上,如表1所示。
表1混合关键系统实例
当系统关键级别为1时,处理器核1和处理器核2上分配的混合关键周期任务利用率之和均小于1,因此,它们在该处理器核上是可调度的。根据EDF(Earliest DeadlineFirst)算法,该处理器核各个任务能够在时限内正确执行。
当系统关键级别提升(即系统关键级别由1变为2)时,τ4、τ7、τ8由于关键级别为1而被挂起,此时,在当前系统关键级别下,处理器核1剩余的混合关键周期任务τ1、τ2和τ3的利用率之和大于1,因此,使得它们在该处理器核上是不可调度的。此时,通常的做法是对系统中关键级大于等于系统当前关键级别的任务重新分配处理器,这就大大地增加了系统开销。
针对这种情况,本方法提出一种解决方案,在保证处理器核高利用率可调度的前提下,将该处理器上某任务的部分作业迁移到其它具有足够剩余利用率的处理器核上执行。一方面,尽可能减少大量任务的迁移;另一方面,充分提高处理器核的利用率。
4.算法描述
本发明所涉及的调度算法,分为两部分,第一部分基于负载均衡的调度算法对任务进行前期分配,第二部分是在关键级别反转时,基于最少迁移度和高利用率的准划分思想方法。其主要流程描述如下。
首先是基于负载均衡的分配算法对任务进行分配。对于n个周期性混合关键任务,将其分配到M个处理器核的过程描述如下:
1、将n个待分配任务队列中的周期性混合关键任务,按照定义1计算各个任务的最大利用率wi,并以此对待分配任务队列的任务进行降序排序。
2、选择在系统当前关键级时利用率最低的处理器核corep(1≤p≤M),如果该处理器核利用率Up与待分配任务队列中的队首任务τi(1≤i≤n)的利用率ui之和小于等于1,则将任务τi加入到处理器核corep的局部就绪任务队列,并按照定义8计算该任务在核运行周期θp内的执行时间片数δi,p,从待分配任务队列中删除任务τi,更新处理器核corep的利用率Up。否则,将任务τi从待分配任务队列中删除,将其加入到全局调度队列。重复第2步,直到待分配任务队列为空。算法结束,
算法的具体流程如图1所示。
当系统关键级别提升时,任务的负载均衡分配算法如下:
1、计算系统在关键级l下的系统利用率U(l),如果U(l)>M,那么,在当前系统关键级下,系统不可调度。算法结束。
2、依次判断全局调度队列中的每一个任务的关键级别是否小于系统当前关键级别l(1≤l≤L),如果是,则将该任务从全局调度队列中删除,同时,将其加入到任务挂起队列。否则,将任务从全局调度队列中删除,同时,将其加入到待分配任务队列。
3、判断处理器核corep(1≤p≤M)上已经分配的所有任务的关键级别是否小于系统当前关键级别l,如果是,则将该任务从该处理器核的局部就绪任务队列中删除,同时,将其加入到任务挂起队列。
4、按照系统当前的关键级别,重新计算该处理器核的利用率Up。如果Up大于1,则依次将该核局部就绪任务队列中在当前系统关键级别下利用率最低的任务删除,将其加入到待分配任务队列,直到Up小于等于1。
5、处理下一个处理器核,重复第2步,直到所有的处理器核处理结束。
6、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
系统关键级别提升时,任务的负载均衡算法的具体流程如图2所示。
当系统关键级别降低时,任务的负载均衡算法如下:
1、依次判断任务挂起队列中的每一个任务的关键级别是否大于等于系统当前关键级别,如果是,则将该任务从任务挂起队列中删除,同时,将其加入到待分配任务队列。
2、依次将全局调度队列中的每一个任务从全局调度队列中删除,同时,将其加入到待分配任务队列。
3、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
系统关键级别降低时,任务的负载均衡算法的具体流程如图3所示。
其次是针对全局调度队列中的任务,基于高利用率的准划分分配算法,这些任务在当前系统关键级下的利用率均大于各个核的剩余核利用率,因此需要迁移到其他处理器核。具体迁移分配方法如下:
1、对于全局调度队列中的周期性混合关键任务,按照系统当前关键级别时任务的利用率进行降序排序。
2、对于全局调度队列中的每一个任务τi,选择M个处理器核中剩余核利用率与该任务τi的利用率最接近的处理器核corep,按照定义8计算在核运行周期θp内任务τi在处理器核corep上的可分配的执行时间片额度δi,p,并将其加入到该核的局部就绪任务队列。在核运行周期θp内任务τi的剩余执行时间片数按照同样方法分配到其它核上。
算法的具体流程如图4所示。
最后是在处理器核运行周期内,对任务的基于最少迁移度的准划分分配算法。设当前处理器核corep上分配的任务数为np,根据前面的算法,在核corep的局部就绪队列中的每一个任务τi在核运行周期内所分配的时间片额度为δi,p。
1、按照定义9计算处理器核corep的运行周期分段划分基数ωp。
2、按照定义9计算处理器核corep的运行周期内的预分配时间分段数υp。
3、每个任务τi(0≤i≤np)的剩余预分配时间额度σi置为0,并设k=1(k表示预分配时间分段序号,1≤k≤υp)。
4、按照定义10计算任务τi在第k个预分配时间分段上预分配的时间片数tsi,k。
5、如果tsi,k≤δi,p,则按照定义11计算任务τi在第k个预分配时间分段内实际预分配的时间片数dtsi,k,修改δi,p=δi,p-dtsi,k,同时,按照定义12计算该任务的剩余预分配时间额度σi,否则dtsi,k=δi,p,修改δi,p=0,σi=0。同样方法,依次处理下一个任务,直到该核上局部就绪任务队列的所有任务都处理完毕。
6、按照定义13计算该核在运行周期的第k个预分配时间分段内实际已分配的时间片数cdtsk。
7、如果cdtsk<ωp,则从{σ1,σ2,L,σnp}中选择其中的最大值σx(σx>0)对应的任务τx,将其dtsx,k的值加1,同时修改δx,p=δx,p-1,σx=σx-1。重复执行第6步,直到cdtsk=ωp或σx=0为止。
8、完成下一个预分配时间分段的时间片分配,即k=k+1,如果k≤υp,则重复执行第4步。
9、对于预分配时间分段内的时间片具体分配,根据任务到达时间,以可抢占方式,按照时限的先后进行分配。
算法的具体流程如图5所示。
第三部分:实例测试结果
按照上述的调度方法,对上述测试用例进行调度。需要说明的是测试用例具有两个系统关键级别,对于具有多个系统关键级别的系统,本方法同样适用。设测试用例是在系统关键级别为1时,按照本方法中基于负载均衡的分配算法对任务进行分配后处理器核1的情况。
首先,系统关键级别提升时的处理。当系统关键级别提升为2,按照本方法中系统关键级别提升时任务的负载均衡分配算法,任务τ4、τ7和τ8的关键级别为1,小于当前系统关键级别2,因此该任务被挂起。在处理器核1上,剩余的混合关键周期任务τ1、τ2和τ3的利用率之和为那么将其中当前系统关键级别下利用率最低的任务τ3从核1的局部就绪任务队列中删除,而将其加入到待分配任务队列。
其次,对于待分配任务队列中的任务采用基于负载均衡的分配算法进行分配。此时,处理器核1的U1为处理器核2的U2为且待分配任务队列中仅有任务τ3。任务τ3的因为u1(2)>1-U1而且u1(2)>1-U2,所以任务τ3被加入到全局调度队列。
然后,对于全局调度队列中任务,采用基于高利用率的准划分分配算法进行调度。处理器核1的运行周期θ1=30,任务τ3的那么任务τ3在运行周期θ1需要执行的时间片为6,按照公式8计算任务τ3在处理器核1运行周期θ1内的执行时间片额度δ3,1=5,则任务τ3剩余的1个时间片被分配到处理器核2。此时处理器核1为满利用率。此时处理器核1上各任务分配的时间额度情况如表2所示。
表2处理器核1上各任务分配的时间额度情况
最后,对于在处理器核1上任务按照基于最少迁移度的准划分分配算法进行分配。计算处理器核1的运行周期分段划分基数ω1=10,其运行周期内的预分配时间分段数υp=3。初始情况下,任务τ1、τ2和τ3的剩余预分配时间额度均为0,在处理器核1运行周期内待分配时间片额度分别为15、10和5。在第一个预分配时间分段,即k=1时,任务τ1、τ2和τ3所分配的实际预分配的时间片数分别为5、3和2,剩余待分配时间片额度分别为10、7和3;在第二个预分配时间分段,即k=2时,任务τ1、τ2和τ3所分配的实际预分配的时间片数分别为5、3和2,剩余待分配时间片额度分别为5、4和1;在第三个预分配时间分段,即k=3时,任务τ1、τ2和τ3所分配的实际预分配的时间片数分别为5、4和1,剩余待分配时间片额度均为0。此时,处理器核1为满利用率。
表3处理器核1上运行周期内的预分配情况
处理器核1根据任务到达时间,以可抢占方式,按照时限的先后对该核上的任务进行调度,其执行情况如图6所示。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (6)
1.基于准划分思想的混合关键任务调度方法,其特征在于,具体包括以下步骤:
步骤1、对于具有M个处理器核的混合关键系统中n个周期性混合关键任务,按照基于负载均衡的分配方法对其进行局部划分和全局划分;
步骤2、按照基于高利用率的准划分方法对于全局调度队列中的每个任务进行全局调度;
步骤3、按照基于最少迁移度的准划分方法对系统中每一个处理器核在其运行周期内的任务预分配。在系统运行过程中,如果系统关键级别提升时,则执行步骤4,如果系统关键级别降低时,则执行步骤5;
步骤4、根据当系统关键级别提升时的任务负载均衡分配方法对系统中部分任务进行调整,转去执行步骤1;
步骤5、根据当系统关键级别降低时的任务负载均衡分配方法对系统中部分任务进行调整,转去执行步骤1。
2.根据权利要求1所述调度方法,其特征在于,步骤1中的基于负载均衡的分配方法具体包括以下步骤:
步骤101、将n个待分配任务队列中的周期性混合关键任务,计算各个任务的最大利用率wi,并以此对待分配任务队列的任务进行降序排序;
步骤102、选择在系统当前关键级时利用率最低的处理器核corep(1≤p≤M),如果该处理器核利用率Up与待分配任务队列中的队首任务τi(1≤i≤n)的利用率ui之和小于等于1,则将任务τi加入到处理器核corep的局部就绪任务队列,并计算该任务在核运行周期θp内的执行时间片数δi,p,从待分配任务队列中删除任务τi,更新处理器核corep的利用率Up,否则,将任务τi从待分配任务队列中删除,将其加入到全局调度队列,重复第102步,直到待分配任务队列为空,算法结束。
3.根据权利要求1所述调度方法,其特征在于,步骤2中的基于高利用率的准划分方法具体包括以下步骤:
步骤201、对于全局调度队列中的周期性混合关键任务,按照系统当前关键级别时任务的利用率进行降序排序;
步骤202、对于全局调度队列中的每一个任务τi,选择M个处理器核中剩余核利用率与该任务τi的利用率最接近的处理器核corep,计算在核运行周期θp内任务τi在处理器核corep上的可分配的执行时间片额度δi,p,并将其加入到该核的局部就绪任务队列;在核运行周期θp内任务τi的剩余执行时间片数按照同样方法分配到其它核上。
4.根据权利要求1所述调度方法,其特征在于,步骤3中的基于最少迁移度的准划分方法具体包括以下步骤:
步骤301、计算处理器核corep的运行周期分段划分基数ωp;
步骤302、计算处理器核corep的运行周期内的预分配时间分段数υp;
步骤303、每个任务τi(0≤i≤np)的剩余预分配时间额度σi置为0,并设k=1,k表示预分配时间分段序号,1≤k≤υp;
步骤304、计算任务τi在第k个预分配时间分段上预分配的时间片数tsi,k;
步骤305、如果tsi,k≤δi,p,则计算任务τi在第k个预分配时间分段内实际预分配的时间片数dtsi,k,修改δi,p=δi,p-dtsi,k,同时,计算该任务的剩余预分配时间额度σi,否则dtsi,k=δi,p,修改δi,p=0,σi=0;同样方法,依次处理下一个任务,直到该核上局部就绪任务队列的所有任务都处理完毕;
步骤306、计算该核在运行周期的第k个预分配时间分段内实际已分配的时间片数cdtsk;
步骤307、如果cdtsk<ωp,则从{σ1,σ2,L,σnp}中选择其中的最大值σx(σx>0)对应的任务τx,将其dtsx,k的值加1,同时修改δx,p=δx,p-1,σx=σx-1;重复执行第306步,直到cdtsk=ωp或σx=0为止;
步骤308、完成下一个预分配时间分段的时间片分配,即k=k+1,如果k≤υp,则重复执行第304步;
步骤309、对于预分配时间分段内的时间片具体分配,根据任务到达时间,以可抢占方式,按照时限的先后进行分配。
5.根据权利要求1所述调度方法,其特征在于,步骤4中的当系统关键级别提升时的任务负载均衡分配方法具体包括以下步骤:
步骤401、计算系统在关键级l下的系统利用率U(l),如果U(l)>M,那么,在当前系统关键级下,系统不可调度,算法结束;
步骤402、依次判断全局调度队列中的每一个任务的关键级别是否小于系统当前关键级别l(1≤l≤L),如果是,则将该任务从全局调度队列中删除,同时,将其加入到任务挂起队列,否则,将任务从全局调度队列中删除,同时,将其加入到待分配任务队列;
步骤403、判断处理器核corep(1≤p≤M)上已经分配的所有任务的关键级别是否小于系统当前关键级别l,如果是,则将该任务从该处理器核的局部就绪任务队列中删除,同时,将其加入到任务挂起队列;
步骤404、按照系统当前的关键级别,重新计算该处理器核的利用率Up;如果Up大于1,则依次将该核局部就绪任务队列中在当前系统关键级别下利用率最低的任务删除,将其加入到待分配任务队列,直到Up小于等于1;
步骤405、处理下一个处理器核,重复第402步,直到所有的处理器核处理结束;
步骤406、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
6.根据权利要求1所述调度方法,其特征在于,步骤5中的当系统关键级别降低时的任务负载均衡分配方法具体包括以下步骤:
步骤501、依次判断任务挂起队列中的每一个任务的关键级别是否大于等于系统当前关键级别,如果是,则将该任务从任务挂起队列中删除,同时,将其加入到待分配任务队列;
步骤502、依次将全局调度队列中的每一个任务从全局调度队列中删除,同时,将其加入到待分配任务队列;
步骤503、对于待分配任务队列,按照基于负载均衡的分配算法重新分配任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810989318.5A CN109298920B (zh) | 2018-08-28 | 2018-08-28 | 基于准划分思想的混合关键任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810989318.5A CN109298920B (zh) | 2018-08-28 | 2018-08-28 | 基于准划分思想的混合关键任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109298920A true CN109298920A (zh) | 2019-02-01 |
CN109298920B CN109298920B (zh) | 2021-11-16 |
Family
ID=65165555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810989318.5A Expired - Fee Related CN109298920B (zh) | 2018-08-28 | 2018-08-28 | 基于准划分思想的混合关键任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109298920B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113176940A (zh) * | 2021-03-29 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种数据流分流方法、装置以及网络设备 |
CN113760552A (zh) * | 2021-09-08 | 2021-12-07 | 清华大学 | 一种无关异构多处理器及其实时调度方法 |
CN115047937A (zh) * | 2022-06-14 | 2022-09-13 | 亿咖通(湖北)技术有限公司 | 基于实时通信的任务控制方法、装置和车辆控制系统 |
CN115562806A (zh) * | 2022-10-09 | 2023-01-03 | 电子科技大学 | 基于微内核的嵌入式虚拟机调度方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700941A (zh) * | 2015-12-18 | 2016-06-22 | 西安工业大学 | 三维调度器模型及其调度算法 |
CN106445673A (zh) * | 2016-10-14 | 2017-02-22 | 苏州光蓝信息技术有限公司 | 一种面向混合关键性实时系统的容错性任务调度方法 |
US20170052891A1 (en) * | 2015-08-19 | 2017-02-23 | Electronics And Telecommunications Research Institute | Multi-core processor system and method for managing a shared cache in the multi-core processor system |
US20180060142A1 (en) * | 2016-08-23 | 2018-03-01 | General Electric Company | Mixed criticality control system |
-
2018
- 2018-08-28 CN CN201810989318.5A patent/CN109298920B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170052891A1 (en) * | 2015-08-19 | 2017-02-23 | Electronics And Telecommunications Research Institute | Multi-core processor system and method for managing a shared cache in the multi-core processor system |
CN105700941A (zh) * | 2015-12-18 | 2016-06-22 | 西安工业大学 | 三维调度器模型及其调度算法 |
US20180060142A1 (en) * | 2016-08-23 | 2018-03-01 | General Electric Company | Mixed criticality control system |
CN106445673A (zh) * | 2016-10-14 | 2017-02-22 | 苏州光蓝信息技术有限公司 | 一种面向混合关键性实时系统的容错性任务调度方法 |
Non-Patent Citations (2)
Title |
---|
BEHNAZ SANATI等: "Poster Abstract: Online Semi-Partitioned Multiprocessor Scheduling of Soft Real-Time Periodic Tasks for QoS Optimization", 《2016 IEEE REAL-TIME AND EMBEDDED TECHNOLOGY AND APPLICATIONS SYMPOSIUM (RTAS)》 * |
黄丽达: "混合关键级调度的若干关键问题研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113176940A (zh) * | 2021-03-29 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种数据流分流方法、装置以及网络设备 |
CN113760552A (zh) * | 2021-09-08 | 2021-12-07 | 清华大学 | 一种无关异构多处理器及其实时调度方法 |
CN115047937A (zh) * | 2022-06-14 | 2022-09-13 | 亿咖通(湖北)技术有限公司 | 基于实时通信的任务控制方法、装置和车辆控制系统 |
CN115047937B (zh) * | 2022-06-14 | 2023-09-12 | 亿咖通(湖北)技术有限公司 | 基于实时通信的任务控制方法、装置和车辆控制系统 |
CN115562806A (zh) * | 2022-10-09 | 2023-01-03 | 电子科技大学 | 基于微内核的嵌入式虚拟机调度方法 |
CN115562806B (zh) * | 2022-10-09 | 2023-06-09 | 电子科技大学 | 基于微内核的嵌入式虚拟机调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109298920B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109298920A (zh) | 基于准划分思想的混合关键任务调度方法 | |
CN103729246B (zh) | 一种任务调度方法和装置 | |
CN105656973B (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN106991006B (zh) | 支持依赖和时间平衡的云工作流任务聚类方法 | |
CN107193652B (zh) | 容器云环境中流数据处理系统的弹性资源调度方法及系统 | |
CN105260818B (zh) | 混合云环境下带截止日期约束工作流组的在线优化调度方法 | |
CN101237469B (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN104657220A (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
CN109408215A (zh) | 一种计算节点的任务调度方法和装置 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
CN110351348A (zh) | 一种基于dqn的云计算资源调度优化方法 | |
CN104917839A (zh) | 一种用于云计算环境下的负载均衡方法 | |
CN106934537A (zh) | 基于反向工作流调度的子期限获取优化方法 | |
CN103699448A (zh) | 一种云计算环境下基于时间期限和预算的调度方法 | |
CN106407007B (zh) | 面向弹性分析流程的云资源配置优化方法 | |
CN102184124B (zh) | 任务调度方法及系统 | |
CN110262896A (zh) | 一种面向Spark系统的数据处理加速方法 | |
Li et al. | Scheduling microservice-based workflows to containers in on-demand cloud resources | |
Weng et al. | Control methods for dynamic time-based manufacturing under customized product lead times | |
CN103679404B (zh) | 一种多项目资源平衡优化方法 | |
CN111736959A (zh) | 异构集群下考虑数据亲和性的Spark任务调度方法 | |
CN109783189A (zh) | 一种静态工作流调度方法与装置 | |
Filippini et al. | Hierarchical Scheduling in on-demand GPU-as-a-Service Systems | |
CN109298919A (zh) | 面向高利用率任务集合的软实时系统的多核调度方法 | |
Polo et al. | Adaptive MapReduce scheduling in shared environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211116 |