基于关键度的混合关键任务调度方法

文档序号:9910828阅读:519来源:国知局
基于关键度的混合关键任务调度方法
【技术领域】
[0001] 本发明属于嵌入式系统多核技术领域,具体涉及一种基于关键度的混合关键任务 调度方法。
【背景技术】
[0002] 在单处理器环境下的嵌入式实时系统中,如果关键任务不能可靠、及时地执行,将 会导致严重的后果。目前,随着多核的出现,嵌入式实时系统设计者为了降低系统功耗、减 少资源的浪费,将更多的安全关键任务集成在同一个平台上,这种系统称之为混合关键系 统(Mixed-Critical ity System)。在该系统中的安全关键任务称之为混合关键任务 (Mixed-Criticality Tasks)。这种集成方式造成了不同关键级别任务之间的干扰,容易引 起关键任务执行失效。例如,汽车的一个ABS(Anti-lock Brake System)刹车系统任务和一 个导航系统任务在同一个多核平台上运行,如果后者不及时释放处理器,那么将会引起刹 车失灵。这种系统在不同时刻,任务将处于不同的安全关键级别。要想让各项任务都能够根 据自己的安全关键级别合理、顺利地得到执行,就必须对各安全关键级别下的所有任务进 行统一的调度。因此,混合关键任务的调度(Mixed Criticality Schedulable,MCS)问题已 经成为业界非常关注的焦点问题。如美国空军研究实验室(US Air Force Research Laboratory)正在积极推出的"混合关键体系结构需求10六1?(1116(1-CriticalityArchitecture Requirements)"项目,并成立相关组织研究如何安全构建这些 混合关键系统。这些组织包括空军研究实验室,国家科学基金委员会,国内安全组织以及国 内航空空间宇航局等。目标是为了使安全关键的嵌入式系统的认证过程流程化、标准化。这 带动了工业界、学院和标准化组织来寻找更多先进的和有效的认证方法。目前国内外对混 合关键任务调度算法大致分为三大类:1)基于优先级的任务调度方法。该方法系统利用率 不高,且并不能防止关键级别反转现象;2)基于资源任务划分的调度算法。该算法实现起来 比较繁琐,且在满足任务时限不丢失的情况下,对核处理速度要求很高;3)基于slack-aware 的调度算法, 该算法要求对每一个任务的slack 时间进行多次推算 ,计算过程很繁琐, 时间复杂度高且zero-slack方法只能调度一小部分的任务集。

【发明内容】

[0003] 有鉴于此,本发明的主要目的在于提供一种基于关键度的混合关键任务调度方 法。
[0004] 为达到上述目的,本发明的技术方案是这样实现的:
[0005] 本发明实施例提供一种基于关键度的混合关键任务调度方法,该方法为:根据每 个安全关键任务的不同关键级别以及相应的实时参数确定对应的关键度,再根据不同安全 关键任务的关键度确定每个安全关键任务的优先顺序,最后依次对优先顺序中的安全关键 任务进行调度。
[0006] 上述方案中,所述根据每个安全关键任务的不同关键级别以及相应的实时参数确 定对应的关键度,具体为:设有η个不同关键级别的安全关键任务,每个安全关键任务上都 有四个参数分别为发布时间Ai、时限Di、关键级别Xi和不同关键级别下的最坏执行时间Q (K);
[0007] 首先,根据值确定K级别下的η个安全关键任务的相对关键违
[0008] 其次,根据当前所处的关键级别k确定每个安全关键任务的关键额度?', = f ; k
[0009] 再次,根据所述安全关键任务的时限04角定每个安全关键任务的时限紧急度
[0010] 最后,根据确定相对关键度、关键额度、时限紧急度确定K个关键级别下的η个任务 的关键度0
[0011] 上述方案中,所述根据不同安全关键任务的关键度确定每个安全关键任务的优先 顺序,具体为:将安全关键任务按照发布时间仏的顺序进行排序放入到任务队列中,从任务 列表中依次选择六 1最小的任务放入到调度队列中,如果就绪队列为空,则直接放入该安全 关键任务;如果就绪队列不空,则根据不同的关键级别,按照CDBP算法比较该安全关键任务 与调度队列中其他任务的优先关系,按照优先次序放入到就绪队列中并将该任务从任务列 表中删除,最后按照所述就绪队列中的次序按依次进行调度。
[0012] 上述方案中,依次对优先顺序中的安全关键任务进行调度,具体为:
[0013] 首先,比较两个安全关键任务的关键度#大小,关键度大的任务优先级高;
[0014] 其次,如果两个安全关键任务的关键度相同,比较两个安全关键任务的关键级别, 关键级别尚的任务优先级尚;
[0015] 最后,如果两个安全关键任务的关键级别一致,则比较两个安全关键任务的时限, 时限小的优先级尚。
[0016] 与现有技术相比,本发明的有益效果:
[0017] 本发明使得当前混合关键任务的调度方法更加简便,减少了不必要的任务切换开 销和关键级别反转的现象。
【附图说明】
[0018] 图1为本发明实施例提供一种基于关键度的混合关键任务调度方法的流程图;
[0019] 图2为本发明实施例中⑶ΒΡ算法优先级分配流程图;
[0020] 图3为本发明实施例中混合关键任务和一般实时任务调度示意图;
[0021 ]图4为本发明实施例中低关键级别调度示意图;
[0022]图5为本发明实施例中尚关键级别调度不意图;
[0023]图6为本发明实施例中基于⑶ΒΡ的任务调度表。
【具体实施方式】
[0024] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0025] 本发明针对安全关键不同级别的任务提出一种基于关键度的(Criticality Degree Based Priority,CDBP)混合关键任务调度方法,该方法全面考虑了任务的关键级 别和紧急程度,且调度表的创建不会因为找不到最低优先级任务而终止。所述混合关键任 务具有四个重要属性--发布时间、时限、关键级别和最坏执行时间。其中最坏执行时间是 一个多维向量,向量值与任务的关键级别相关,各元素表示任务在各个级别下的最坏执行 时间。如在K个关键级别的安全关键系统中,关键级别最低为1,最高为K,安全关键任务表示 为Ji,则有:
[0026] Ji=(Xi,Ai,Di,Ci)
[0027] 其中,Χ,表示任务土的关键级别;Ai表示任务的发布时间此表示任务的时限;(:康 示任务的最坏执行时间,是一个向量:
[0028] Ci=(Ci(l),Ci(2),...,Ci(K))
[0029] Cdl)表示任务心在关键级别为1时的最坏执行时间,CK2)表示任务心在关键级别 为2时的最坏执行时间,CJK)表示任务上在关键级别为K时的最坏执行时间。若K>X^,有 Ci(K)=Ci(Xi)〇
[0030] 定义1相对关键度Pi-一是指在具有η个任务的系统I中,任务心相对于其他任务 的关键级别的重要程度。用
表示,其中XdPXj是各任务在系统某个统一时刻的 关键级别。
[0031] 定义2关键额度31--是指在具有K个关键级别的系统I中,Ji当前所处级别在当 前系统的关键级别k下所具有的关键份数。用4 来表示,其中Xl是任务的当前关键级 别。
[0032]定义3时限紧急度cU-一是指任务时限的先后对任务的紧急程度的影响,用 4 来表示。在同等情况下,时限更早到来的任务应该具有更高的优先级
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1