一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多处理器平台混合关键度系统任务调度方法

2022-08-31 00:38:05 来源:中国专利 TAG:


1.本发明属于信息物理融合系统多核技术领域,特别是一种多处理器平台混合关键度系统任务调度方法。


背景技术:

2.在现代嵌入式系统中,由于空间、功率和成本的限制,系统的规模和复杂性日益增长,系统中集成的处理器个数也越来越多。为了整合各种程序的认证要求并有效管理应用程序,vestal等人率先提出了混合关键度系统的概念,其将多种不同安全级别的应用集成在同一处理器上。传统的零星实时任务系统必须满足所有任务的最差资源需求,而混合关键度任务是否能成功执行是由其自身的关键度等级和系统的运行模式来共同决定的。混合关键度模型要求系统有一个以上的关键度级别,其中处于第k个关键度等级的任务有k种不同的最坏执行需求。而且,任务在第(k-1)级下的执行要求不高于在第k级的执行要求。随着多处理器平台逐渐成为现代系统的强大计算引擎,混合关键度系统已逐步部署在多处理器平台上,其分区调度下的任务分配和任务调度算法也重新引起人们的兴趣。
3.现有的多处理器混合关键度系统调度研究集中于双关键度系统(只有两个关键度等级),最新的分区双关键度系统任务调度算法采用基于利用率差异(utilization difference partition,udp)的任务分配方法,将高关键度任务优先分配在不同关键度模式下处理器利用率差异较小的处理器上。并且根据是否区分任务关键度等级分别提出了ca-udp(criticality aware utilization decreasing partition)和cu-udp(criticality unaware utilization decreasing partition)算法。其中,ca-udp算法先分配高关键度任务,再分配低关键度任务;而cu-udp算法则不考虑任务所在的关键度等级,将所有任务按照其执行时所需处理器利用率的大小进行降序排列,依次进行分配。这两种算法都改进了传统任务分配算法在混合关键度系统中可调度性低的缺陷。但是在任务集利用率较小时,ca-udp算法的可调度性远低于cu-udp算法,相反在任务集利用率较高时,ca-udp算法的可调度性又高于cu-udp算法。此外,这种分配方法在任务数较大时表现出来的性能比较差,而且仅考虑了系统可调度性的优化,对于系统栈空间消耗依然很大。
4.现有的混合关键度系统任务调度算法大多都是从单处理器平台扩展到多处理平台上的,虽然继承了单处理器上可调度性高的优点,但是在不同的调度策略下如何将任务分配到多核处理器上的分配算法并不完善,而且在任务分配优化时只考虑了系统的可调度性。除此之外,现有的双关键度系统分区调度算法通常只考虑完全可抢占的混合关键度任务模型,这些方法会导致较多的抢占次数和上下文切换开销,而且这些方法没有考虑系统的栈内存空间的优化。
5.对于传统操作系统任务调度,可以采用基于抢占阈值的调度算法对系统栈空间使用情况进行优化。有学者提出了针对于传统任务的基于抢占阈值调度的任务分配方法,可以在原有的基础上减少使用近一半的栈空间。将这些任务分配方法直接应用到混合关键度系统时,虽然也能够大幅度减少系统栈空间使用,但是由于其没有考虑任务关键度等级的
性质,导致系统的可调度性大幅下降。另外,由于混合关键度系统的复杂性,使其对计算能力的要求比较高,在直接使用传统分配算法时,运行时间比分配同样任务数的传统任务平均高出一倍以上,并且随着任务数的增加,运行时间差距会大幅增大。
6.总之,现有技术存在的问题是:系统可调度性低、栈空间使用量大。


技术实现要素:

7.本发明的目的在于提供一种多处理器平台混合关键度系统任务调度方法,系统可调度性高、栈空间使用量少。
8.实现本发明目的的技术解决方案为:
9.一种多处理器平台混合关键度系统任务调度方法,包括如下步骤:
10.(10)单个处理器混合关键度任务调度:为同一个处理器上的每个混合关键度任务分别分配一个优先级和一个抢占阈值作为调度参数,根据所述调度参数对任务进行调度,每个混合关键度任务固定运行在所分配到的处理器上;
11.(20)任务到处理器预分配:根据任务所需要的处理器利用率,将混合关键度系统任务划分为轻任务和重任务,先分配重任务再分配轻任务,均采用基于利用率差异的分配方法,将任务分配至多处理器平台的一个处理器上;
12.(30)任务分配优化:针对任务到处理器的预分配结果进行优化调整。
13.本发明与现有技术相比,其显著优点为:
14.1、系统可调度性高:本发明在预分配阶段,合理地将混合关键度系统任务进行划分,按顺序分别将各个划分后的任务集采用基于利用率差异分区的方法分配至多处理器平台上,并且在单处理上采用固定优先级抢占阈值调度,减少了任务开始执行后被抢占的次数。通过任务划分和设置抢占阈值的方法极大的提升了单个处理器任务集的可调度性,从而提高了系统的可调度性。
15.2、栈空间使用量少:本发明在分配优化阶段,以最小栈空间为优化目标,将部分利用率较大的任务分配至预分配的处理器上,其他任务按照贪心全搜索的方法重新分配处理器,并采用固定优先级抢占阈值的调度方法限制任务抢占次数,从而极大地减少系统栈空间的使用。
16.3、硬件成本低:与之前基于完全可抢占的混合关键度任务调度方法相比,基于固定优先级抢占阈值调度方法可以减少任务之间的抢占次数,从而减少上下文切换开销,在提高了系统的可调度性的同时,极大地减少系统栈空间的使用,从而大幅降低了系统的硬件成本。
17.下面结合附图和具体实施方式对本发明作进一步的详细描述。
附图说明
18.图1是本发明多处理器平台混合关键度系统任务调度方法的主流程图。
19.图2是图1中单个处理器混合关键度任务调度及栈空间计算原理图。
20.图3是图1中任务预分配步骤的流程图。
21.图4是基于利用率差异分配方法的原理图。
22.图5是图1中任务分配优化步骤的流程图。
23.图6是图5中所使用的贪心全搜索方法的流程图。
具体实施方式
24.如图1所示,本发明多处理器平台上混合关键度系统任务调度方法,其包括如下步骤:
25.(10)单个处理器混合关键度任务调度:为同一个处理器上的每个混合关键度任务分别分配一个优先级和一个抢占阈值作为调度参数,根据所述调度参数对任务进行调度,每个混合关键度任务固定运行在所分配到的处理器上;
26.所述多处理器混合关键度系统采用的调度方法为固定优先级抢占阈值调度(fp-pts),系统中混合关键度任务具有五个重要属性——关键度级别li,系统不同关键度模式下任务执行时间向量任务发布周期ti,任务的截止期di,为完成任务处理器需要提供的最小栈空间sti,即:
[0027][0028]
其中li∈{lo,hi}表示任务τi的关键度级别;ci(hi))表示任务τi在不同关键度模式下的最差执行时间;ti为任务τi的发布周期;di为任务τi的截止期,任务必须在截止期之前执行完成,否则视为不可调度;sti为处理器需要给该任务提供的最小栈空间,仅与任务本身有关。
[0029]
如图2所示,所述(10)单个处理器混合关键度任务调度步骤包括:
[0030]
(11)预付优先级:任务未执行前,给所有任务分配一个固定优先级和一个抢占阈值。
[0031]
对于每一个任务都有固定的优先级pri和抢占阈值pt,例如图2中任务τ3的优先级为2,抢占阈值为3。
[0032]
(12)优先级变更:任务开始执行,将任务的优先级变为抢占阈值,此时只有优先级大于该任务抢占阈值的任务才能完成抢占;
[0033]
例如图2中任务τ3,在任务τ3发布之后,它在该处理器上的优先级为2,一旦任务τ3开始执行,那么它的优先级就会变为3,此时只有优先级大于3的任务才能抢占处理器。
[0034]
(13)任务调度:将每个混合关键度任务分配到多处理器平台中的一个处理器上,并根据所赋予的固定优先级和抢占阈值进行调度,任务固定运行在所分配的处理器上。
[0035]
任务固定运行在所分配的处理器上,运行期间不会迁移至其他处理器。在任务发布时以优先级pri抢占处理器执行,任务开始执行后,只有优先级大于该任务抢占阈值的任务才能抢占处理器。如图2所示,任务τ3和τ4在开始执行之后的优先级变更为3,此时只有任务τ1可以抢占;任务τ2在开始执行之后的优先级变更为4,没有任务可以抢占;根据抢占关系处理器可能同时为{τ1,τ3}、{τ1,τ4}或{τ2}提供执行所需栈空间,因此处理器k所需提供栈空间为stk(φk)=max((st1 st3),(st1 st4),st2),其中φk为分配在处理器k上的任务集。
[0036]
(20)任务到处理器预分配:根据任务所需要的处理器利用率,将混合关键度系统任务划分为轻任务和重任务,先分配重任务再分配轻任务,均采用基于利用率差异的分配方法,将任务分配至多处理器平台的一个处理器上;
[0037]
如图3所示,所述(20)任务预分配步骤包括:
[0038]
(21)轻重任务划分:将在任务所属关键度模式下利用率大于轻任务阈值的混合关键度任务分类为重任务,其余的则分类为轻任务;
[0039]
首先计算任务在自身关键度模式下的利用率如果该利用率大于等于轻任务阈值u
t
,即将该任务分类为重任务,否则分类为轻任务,对于只有两个关键度等级的混合关键度系统,u
t
=0.2。其中任务利用率是指任务τi在系统关键度等级为j时的任务利用率,表示在执行该任务时所占用处理器的份额,用来表示,其中ci(j)表示任务τi在系统关键度级别为j时的最差执行时间。
[0040]
(22)重任务分配:将所有的重任务按照其所属关键度模式下利用率的降序排列,对重任务依次进行分配;
[0041]
所述(22)重任务分配步骤中,对重任务依次进行分配具体为:
[0042]
对于高关键度任务,采用基于利用率差异的分配方法,分配至高关键度模式下处理器利用率和低关键度模式下处理器利用率之差最小的处理器上;
[0043]
基于利用率差异的分配方法是一种能够极大提升任务集可调度性的分配方法,将所有任务按照其所属关键度模式下利用率的降序排列,依次进行分配。对于高关键度任务,计算每个处理器在高关键度模式和低关键度模式下的利用率之差δuk,将任务分配到δuk最小的处理器上,其中φk为已经分配在处理器k上的任务集。如图4所示,对于有4个处理器的混合关键度系统,其中不同颜色表示了处理器在不同关键度模式下的利用率,对于1号处理器,低关键度模式下系统利用率为0.4,其中不包含低关键度任务;高关键度模式下系统利用率为0.6。当所需分配的下一个任务是高关键度任务时,计算出各个处理器的δu如图4所示,此时将下一个任务优先分配在利用率差值为0.2的1号处理器上;
[0044]
对于低关键度任务,按照处理器索引顺序分配至第一个能调度的处理器上。
[0045]
(23)轻任务分配:将轻任务按照任务的关键度,分为高关键度轻任务和低关键度轻任务,先分配高关键度轻任务,再分配低关键度轻任务;
[0046]
所述(23)轻任务分配步骤中,对轻任务依次进行分配具体为:
[0047]
对于高关键度轻任务,按照任务在高关键度模式下利用率的降序排列,依次进行分配,采用基于利用率差异的分配方法,分配至高关键度模式下处理器利用率和低关键度模式下处理器利用率之差最小的处理器上;
[0048]
对于低关键度轻任务,按照低关键度模式下利用率的降序排列,依次进行分配,分配至第一个能调度的处理器上;
[0049]
(30)任务分配优化:针对任务到处理器的预分配结果进行优化调整。
[0050]
如图5所示,所述(30)任务分配优化步骤包括:
[0051]
(31)固定任务与再分配任务划分:将混合关键度系统任务按照任务所在关键度等级进行分类;对于每一个任务,如果该任务在所属关键度模式下的利用率大于该关键度模式下所有任务利用率平均值的三倍,则将该任务设置为固定任务,剩余任务则设置为再分配任务;
[0052]
对于每个关键度等级下的任务,首先计算出所有任务利用率均值然后对比每个任务的利用率,如果任务的最大利用率大于该关键度模式下利用率均值的三倍,即则将该任务设置为固定任务,否则设置为再分配任务;
[0053]
(32)固定任务优化:将固定任务直接分配在预分配阶段所分配的处理器上;
[0054]
(33)再分配任务优化:采用贪心全搜索方法,重新分配再分配任务。
[0055]
如图6所示,所述(33)再分配任务优化步骤包括:
[0056]
(331)再分配任务排序:所有再分配任务按照其所属关键度模式下利用率的降序排列;
[0057]
(332)处理器排序:将每个再分配任务依次尝试分配至所有处理器,计算每个处理器栈空间增加量,并以此升序排列处理器;
[0058]
首先尝试将第一个任务τi分配至每一个处理器上,计算任务τi分配至处理器后,处理器的栈空间增加量δstk(τi),δstk(τi)=stk(φk∪τi)-stk(φk),并将能够调度的处理器按照δstk(τi)的升序进行排列;
[0059]
(333)任务分配:选择系统栈空间增加最小的处理器进行任务分配;
[0060]
(334)优化完成:如果剩下的任务不能按照上述的方法成功分配,则采用回溯方法,将当前任务分配至下一个系统栈空间增加次小的处理器核上,然后跳转至步骤(332),直到所有任务均成功分配到处理器。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献