CN102541646A - 一种适用于硬实时系统的任务调度方法 - Google Patents

一种适用于硬实时系统的任务调度方法 Download PDF

Info

Publication number
CN102541646A
CN102541646A CN2010105813240A CN201010581324A CN102541646A CN 102541646 A CN102541646 A CN 102541646A CN 2010105813240 A CN2010105813240 A CN 2010105813240A CN 201010581324 A CN201010581324 A CN 201010581324A CN 102541646 A CN102541646 A CN 102541646A
Authority
CN
China
Prior art keywords
fault
tolerant
task
configuration
priority
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
Application number
CN2010105813240A
Other languages
English (en)
Other versions
CN102541646B (zh
Inventor
郭锐锋
丁万夫
秦承刚
李俊超
刘娴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Institute of Computing Technology of CAS
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Shenyang Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd, Shenyang Institute of Computing Technology of CAS filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN201010581324.0A priority Critical patent/CN102541646B/zh
Publication of CN102541646A publication Critical patent/CN102541646A/zh
Application granted granted Critical
Publication of CN102541646B publication Critical patent/CN102541646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明涉及适用于硬实时系统的任务调度方法,包括以下步骤:按照给定算法fp(γ)分配任务的常规优先级;设定抢占阈值配置hx、容错优先级配置ωy、容错阈值配置
Figure DDA0000037170170000011
和容错间距te的初始值;配置hx、容错优先级配置ωy、容错阈值配置
Figure DDA0000037170170000012
和容错间距te计算最坏情况响应时间ri(x,y,z,te);当ri(x,y,z,te)>di时,计算所得到的
Figure DDA0000037170170000013
为τi的最优抢占阈值配置,将
Figure DDA0000037170170000014
Figure DDA0000037170170000015
Figure DDA0000037170170000017
输出作为搜索算法的最终结果;根据上述结果为任务分配抢占阈值、容错优先级配置及容错阈值配置,进行任务调度,获得所能承受的最小错误间隔。本发明方法能够在抢占式容错调度算法(ft-fpp)和抢占阈值容错调度算法(ft-fppt)无法提高系统容错能力的情况下,进一步提高系统的容错能力。

Description

一种适用于硬实时系统的任务调度方法
技术领域
本发明涉及实时系统中的任务调度技术领域,具体是一种适用于硬实时系统的任务调度方法。
背景技术
硬实时系统在军事、经济、核工业等多个关键领域发挥着极其重要的作用,该类系统具备两个典型特征:严格的实时性以及高度的可靠性。其中,实时性是指系统必须保证所有实时任务在其截止期内完成,可靠性是指当系统的硬件或软件出现故障时实时任务仍可以正常运行。容错实时调度算法是硬实时系统实时性和可靠性保障的重要手段,为此研究人员提出了多种容错模型。软件容错模型是一种广泛采用的容错调度模型。在该模型中,每个任务由两个版本组成:主版本和替代版本。主版本是在无错误发生时系统调度的任务版本。每个主版本都对应着一个或多个替代版本,替代版本是对主版本相同功能的不同实现,且两者只要求完成一个即可。
常用的固定优先级实时调度算法有速率单调RM算法(Rate Monotonic)和时限单调DM(Deadline Monotonic)算法。RM和DM两种算法具有运行开销小和可预测性好的优点,被广泛应用于硬实时系统的任务调度中。以这两种算法为基础,研究人员进一步提出了相应的容错调度算法。BCE算法为软件容错模型提供了一种有效的实时调度策略。在该算法中,主版本的预测精度是影响调度性能的关键。但是,RM、DM及其扩展算法本质上都是基于单一优先级的抢占式调度,其任务运行前后的优先级始终不变,灵活性较差。而抢占阈值调度是一种优先级可变的任务调度策略,任务在执行前后具有两个不同的优先级,可以通过对优先级的恰当选择获得理想的调度效果。与抢占式调度相比,这种调度策略更加通用灵活,并能有效减少任务间的抢占次数。研究人员对软件容错模型下的抢占阈值调度(FT-FPPT)进行了研究。当采取FT-FPPT算法进行调度时,若主版本发生错误,立即执行替代版本进行容错,并且系统为替代版本分配与主版本相同的常规优先级和抢占阈值。虽然这种方法实现简单,但是在硬实时系统中,当任务出错时,其响应时间肯定大于或等于在无容错系统中的响应时间,采取继承主版本常规优先级和抢占阈值的分配策略可能会导致任务无法在截止期限内完成。
发明内容
针对现有技术中抢占阈值容错调度算法存在容错能力差等不足之处,本发明要解决的技术问题是提供一种允许容错优先级提升的适用于硬实时系统的任务调度方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明适用于硬实时系统的任务调度方法包括以下步骤:
按照给定算法FP(Γ)分配任务的常规优先级;
设定抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA0000037170150000021
和容错间距TE的初始值;
根据任务的常规优先级以及抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA0000037170150000022
和容错间距TE来计算任务的最坏情况响应时间Ri(x,y,z,TE);
判断Ri(x,y,z,TE)>Di吗?
当Ri(x,y,z,TE)>Di时,计算所得到的
Figure BDA0000037170150000023
为τi的最优抢占阈值配置,
Figure BDA0000037170150000024
Figure BDA0000037170150000025
的最优容错优先级配置,
Figure BDA0000037170150000026
的最优容错阈值配置,而
Figure BDA0000037170150000028
则为在FT-FPPT*调度算法下所能承受的最小错误间隔;
Figure BDA0000037170150000029
Figure BDA00000371701500000210
Figure BDA00000371701500000211
输出作为搜索算法的最终结果;
根据上述结果为任务分配抢占阈值、容错优先级配置及容错阈值配置,进行任务调度,获得所能承受的最小错误间隔。
当Ri(x,y,z,TE)≤Di时,计算相应的抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA00000371701500000213
和容错间距TE,并分别赋值给
Figure BDA00000371701500000214
Figure BDA00000371701500000215
Figure BDA00000371701500000216
返回判断“Ri(x,y,z,TE)>Di吗?步骤,直至满足条件Ri(x,y,z,TE)>Di
接续“计算所得到的为τi的最优抢占阈值配置,
Figure BDA00000371701500000219
的最优容错优先级配置,
Figure BDA00000371701500000221
Figure BDA00000371701500000222
的最优容错阈值配置,而
Figure BDA00000371701500000223
则为在FT-FPPT*调度算法下所能承受的最小错误间隔”步骤。
通过以下公式计算任务最坏情况响应时间Ri(x,y,z,TE):
R i ( x , y , z , T E ) = max ( R i ext ( x , y , z , T E ) , R i int ( x , y , z , T E ) )
式中
Figure BDA00000371701500000225
表示外部错误最坏响应时间;
Figure BDA00000371701500000226
表示外部错误最坏响应时间;x,y,z为抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA00000371701500000227
中的变量,TE为系统最小错误间隔。
外部错误最坏响应时间通过以下公式计算得到:
Figure BDA00000371701500000228
Figure BDA00000371701500000229
式中τi在时刻t前的响应时间
Figure BDA00000371701500000230
和在时刻t后的响应时间
Figure BDA00000371701500000231
Si(x,y,z,TE)为任务τi的最坏开始时间,Ci为任务τi的最坏执行时间,Ei为出错时间,
Figure BDA00000371701500000232
为替代版本
Figure BDA00000371701500000233
的最坏执行时间,
Figure BDA00000371701500000234
Figure BDA00000371701500000235
分别为替代版本
Figure BDA00000371701500000236
的容错优先级与容错阈值,πi和γi分别为主版本任务的常规优先级与抢占阈值。
内部错误最坏响应时间通过以下公式计算得到:
R i int ( x , y , z , T E ) = R i int 1 ( x , y , z , T E ) + R i int 0 ( x , y , z , T E )
式中τi在时刻t前的响应时间
Figure BDA0000037170150000032
和在时刻t后的响应时间 R i int 1 ( x , y , z , T E ) .
在时刻t前的响应时间通过以下公式计算得到:
Figure BDA0000037170150000034
在时刻t后的响应时间通过以下公式计算得到:
Figure BDA0000037170150000035
Figure BDA0000037170150000036
Figure BDA0000037170150000037
本发明具有以下有益效果及优点:
该方法能够在抢占式容错调度算法(FT-FPP)和抢占阈值容错调度算法(FT-FPPT)无法提高系统容错能力的情况下,进一步提高系统的容错能力。
附图说明
图1为本发明方法中τi的内部错误最坏响应时间
Figure BDA0000037170150000038
的计算过程图;
图2为本发明方法中在不同处理器利用率下FT-FPPT*调度的ΔTe值变化曲线图。
具体实施方式
本发明适用于硬实时系统的任务调度方法包括以下步骤:
按照给定算法FP(Γ)分配任务的常规优先级;
设定抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA0000037170150000039
和容错间距TE的初始值;
根据任务的常规优先级以及抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure BDA00000371701500000310
和容错间距TE来计算任务的最坏情况响应时间Ri(x,y,z,TE);
判断Ri(x,y,z,TE)>Di吗?
当Ri(x,y,z,TE)>Di时,计算所得到的
Figure BDA00000371701500000311
为τi的最优抢占阈值配置,
Figure BDA00000371701500000312
Figure BDA00000371701500000313
的最优容错优先级配置,
Figure BDA00000371701500000314
的最优容错阈值配置,而则为在FT-FPPT*调度算法下所能承受的最小错误间隔;
Figure BDA00000371701500000318
Figure BDA00000371701500000319
Figure BDA00000371701500000320
输出作为搜索算法的最终结果;
根据上述结果为任务分配抢占阈值、容错优先级配置及容错阈值配置,进行任务调度,获得所能承受的最小错误间隔。
下面将结合优先级配置搜索算法对本发明实施方式作进一步地详细描述。
在容错实时系统中,任务τi的最坏响应时间通常包括三个部分:(a)任务最坏执行时间Ci;(b)容错部分Fi,即由于错误引起的时间开销;(c)抢占部分Ii,即高优先级任务引起的抢占时间。因此,任务τi的最坏响应时间等于三部分的总和,即Ci+Fi+Ii。其中,任务的执行时间Ci是不变的,而Fi和Ii主要是基于当前执行任务的优先级。在容错优先级可提升的抢占阈值容错调度算法中,主版本任务具有两个优先级,即常规优先级πi与抢占阈值γi,而替代版本具有两个优先级,即容错优先级与容错阈值
Figure BDA0000037170150000042
而根据固定优先级调度算法FP(Γ)进行任务调度时,πi是确定已知的。因此,如何分配任务τi的抢占阈值γi、以及替代版本
Figure BDA0000037170150000043
的常规优先级和抢占阈值
Figure BDA0000037170150000045
是问题的研究重点。本文提出了任务τi抢占阈值配置Ωx、替代版本
Figure BDA0000037170150000046
的容错优先级配置Hy以及容错阈值配置
Figure BDA0000037170150000047
的概念,定义如下。
定义1.任务τi的抢占阈值配置Hx是一个n元组<hx,1,hx,2,...,hx,n>,其中hx,i=γii,且有0≤hx,i≤(i-1)。
定义2.任务
Figure BDA0000037170150000048
的容错优先级配置Ωy是一个n元组<σy,1,σy,2,...,σy,n>,其中
Figure BDA0000037170150000049
且有0≤σy,i≤(i-1)。
定义3.对于给定的容错优先级配置Ωy,任务
Figure BDA00000371701500000410
的容错阈值配置
Figure BDA00000371701500000411
是一个n元组
Figure BDA00000371701500000412
其中
Figure BDA00000371701500000413
且有
Figure BDA00000371701500000414
根据Hx、Ωy
Figure BDA00000371701500000415
的定义可知,hx,i表示γi相对于πi的增量,σy,i表示相对于πi的增量,而
Figure BDA00000371701500000417
表示
Figure BDA00000371701500000418
相对于
Figure BDA00000371701500000419
的增量。值得注意的是,
Figure BDA00000371701500000420
的取值范围依赖于σy,i。当
Figure BDA00000371701500000421
时,所表示的就是FT-FPP调度算法;当
Figure BDA00000371701500000422
且Ωy=<0,0,...,0>时,所表示的就是FT-FPPT调度算法。可以看出,FT-FPP与FT-FPPT均是FT-FPPT*的特例。
对于任务τi最坏响应时间的计算,可以分为两步进行。首先推导出任务τi最坏开始时间Si的计算公式,然后推导出τi最坏响应时间Ri的计算公式。当Hx、Ωy
Figure BDA00000371701500000423
和TE取不同的值时,任务的最坏开始时间Si以及任务的最坏响应时间Ri都是不同的,可见它们均是Hx、Ωy
Figure BDA00000371701500000424
和TE的函数,分别用Si(x,y,z,TE)以及Ri(x,y,z,TE)来表示。
任务最坏开始时间Si(x,y,z,TE)的计算
对于任意给定的任务τi,只有当抢占阈值大于等于πi,而常规优先级低于πi的任务才可以阻塞τi的运行,因此,τi被低优先级任务阻塞的时间可表示为:
B i = max &gamma; j &GreaterEqual; &pi; i > &pi; j C j - - - ( 1 )
对于给定的错误间隔TE,在时间间隔Δt内,发生错误的最大次数可表示为
Figure BDA0000037170150000051
因此,在Δt内,由错误所引起的最大时间开销可以通过
Figure BDA0000037170150000052
计算,其中SΔt表示Δt内所有可能执行的任务集合。在最坏情况下,任务τi的开始时间Si(x,y,z,TE),可通过如下公式计算:
Figure BDA0000037170150000053
Figure BDA0000037170150000054
在公式(2)中,第一项是Si(x,y,z,TE)被低优先级任务阻塞的最大时间,可以通过公式(1)计算。第二项表示在Si(x,y,z,TE)内,所有高优先级任务所带来的抢占时间。最后一项Ei表示Si(x,y,z,TE)期间进行错误恢复的替代版本执行时间总和。Ei可通过公式(3)计算。Si(x,y,z,TE)可通过迭代计算获得,迭代的初始值可以为
Figure BDA0000037170150000055
当两次迭代计算得到的Si(x,y,z,TE)值相同时迭代结束。
任务最坏响应时间Ri(x,y,z,TE)的计算
由于任务τi在执行过程中是否发生错误将导致该任务具有不同的响应时间,因此,需要将Ri(x,y,z,TE)的计算分为两种情况:(1)任务τi在执行过程中自身未发生错误,此时的最坏响应时间由
Figure BDA0000037170150000056
表示,简称为外部错误最坏响应时间;(2)任务τi在执行过程中自身发生错误,此时的最坏响应时间由表示,简称为内部错误最坏响应时间。显然,任务τi的最坏响应时间Ri(x,y,z,TE)为
Figure BDA0000037170150000058
Figure BDA0000037170150000059
的最大值,即
R i ( x , y , z , T E ) = max ( R i ext ( x , y , z , T E ) , R i int ( x , y , z , T E ) ) - - - ( 4 )
下面将分别对
Figure BDA00000371701500000511
进行分析。
(a)
Figure BDA00000371701500000513
的计算
外部错误是指任务τi在执行过程中其他任务发生错误的情况。此时,由于τi没有发生错误,因此τi始终在其抢占阈值γi上执行。容错部分Fi需要考虑容错阈值大于或等于πi的任务。由于此时考虑的是外部错误情况,因此在容错部分需要排除任务τi自身发生错误的情况。除此之外,Fi部分应当排除在Si(x,y,z,TE)中重复计算的Ei。抢占部分Ii仅需考虑常规优先级高于γi的任务,同理,Ii部分也需要排除在Si(x,y,z,TE)中重复计算的情况。所以,在FT-FPPT*调度下,任务τi的外部错误最坏响应时间
Figure BDA00000371701500000514
可通过如下公式计算:
Figure BDA0000037170150000061
(5)
Figure BDA0000037170150000062
(b)的计算
如图1所示,假设任务τi在时刻t第一次发生错误,则τi的内部错误最坏响应时间
Figure BDA0000037170150000064
可以分为两个部分:τi在时刻t前的响应时间和在时刻t后的响应时间
Figure BDA0000037170150000066
。由于任务τi在错误出现后的执行情况与错误前的执行无关,因此可以先推导出
Figure BDA0000037170150000067
的计算公式,然后再根据
Figure BDA0000037170150000068
推导出
Figure BDA0000037170150000069
的计算公式,最后推导出
Figure BDA00000371701500000610
的计算公式。下面将按照这种方法进行分析。
首先考虑
Figure BDA00000371701500000611
的计算公式。对于抢占阈值大于或等于容错优先级的任务,其替代版本也能抢占的执行,在这其中当然也包含了
Figure BDA00000371701500000614
再次发生错误的情况。由于在
Figure BDA00000371701500000615
期间,最多可能发生
Figure BDA00000371701500000616
次错误,而其中第一个错误就是任务τi在时刻t发生的错误,而其余
Figure BDA00000371701500000617
个错误可能来自抢占阈值高于容错优先级
Figure BDA00000371701500000618
的任务。对于抢占部分,当任务τi发生错误后,其替代版本
Figure BDA00000371701500000619
开始在其容错阈值
Figure BDA00000371701500000620
上执行,则常规优先级大于
Figure BDA00000371701500000621
的任务才可以抢占
Figure BDA00000371701500000622
的执行。根据上面的分析,可以得到
Figure BDA00000371701500000623
的计算公式为
现在来考虑
Figure BDA00000371701500000625
的计算公式。对于容错部分,只有容错阈值大于或等于πi的替代版本才有可能执行。值得注意的是,若σy,i=0,即
Figure BDA00000371701500000626
最坏情况是所有的错误都发生在任务τi或者
Figure BDA00000371701500000627
上,此时
Figure BDA00000371701500000628
因此当σy,i=0时需要考虑τi自身发生错误的情况;若σy,i>0,即
Figure BDA00000371701500000629
容错部分则需要排除τi自身发生错误的情况。这里我们用集合Ψ来表示这两种情况,如下:
&Psi; = &gamma; &OverBar; k &GreaterEqual; &pi; i if &sigma; y , i = 0 &gamma; &OverBar; k &GreaterEqual; &pi; i , k &NotEqual; i if &sigma; y , i > 0 - - - ( 7 )
期间,可以抢占τi执行的任务,其常规优先级应该大于γi。但是在
Figure BDA00000371701500000632
内已经考虑了大于
Figure BDA00000371701500000633
的情况,这就意味着应该减去在
Figure BDA00000371701500000634
内已经考虑的抢占开销。与抢占部分一样,容错部分也需要排除重复计算的情况。因此,
Figure BDA00000371701500000635
的最坏响应时间计算公式为
Figure BDA0000037170150000071
Figure BDA0000037170150000072
Figure BDA0000037170150000073
基于以上分析,任务τi的内部错误最坏响应时间
Figure BDA0000037170150000076
之和,即:
R i int ( x , y , z , T E ) = R i int 1 ( x , y , z , T E ) + R i int 0 ( x , y , z , T E ) - - - ( 9 )
当系统中所有任务的最坏响应时间均不大于其截止期时,任务集Γ是可调度的,否则任务集Γ不可调度。
引入函数Te(x,y,z)。给定配置Ωx、Hy
Figure BDA0000037170150000078
函数Te(x,y,z)表示TE所能达到的最小值。若TE比Te(x,y,z)的值更小,则必有任务不可调度,这样的任务称为临界任务,下面给出临界任务的定义。
定义4.当TE=Te(x,y,z)-1时,至少存在一个任务,使得整个集合Γ不可调度,称这样的任务为临界任务。所有的临界任务构成了一个集合,称为临界任务集,若用Z(x,y,z)表示此集合,则有
Figure BDA0000037170150000079
根据临界任务的属性不同,可将临界任务分为主动临界任务与被动临界任务,定义如下。
定义5.由于自身发生错误而导致自己最终错过时限的任务称为主动临界任务(active-task),由此类任务组成的集合称为主动临界任务集,若用Za(x)表示此集合,则有
Figure BDA00000371701500000710
定义6.由于自身发生错误而导致其他任务错过时限的任务称为被动临界任务(passive-task),由此类任务组成的集合称为被动临界任务集,若用Zp(x)表示此集合,则有
Figure BDA00000371701500000711
为了获得最优的双重优先级配置,最直观的方法是尝试使用每一种可能的配置方案,并分别计算每种配置下的Te值,而能够获得最小Te值的配置即为最优配置。为了提高搜索算法的效率,避免在优化的过程中检验所有的双重优先级配置,由公式(5)可以推导出两个必要非充分条件,以减少算法的时间复杂度,即:
Figure BDA00000371701500000712
Figure BDA0000037170150000081
算法过程:给定Ωx、Hy
Figure BDA0000037170150000082
若TE=Te(x,y,z)-1,寻找使得任务集可调度的Ω′x、H′y如果Ω′x、H′y
Figure BDA0000037170150000084
存在,算法找到它,否则,算法停止,迭代的初始条件是
Figure BDA0000037170150000085
下面给出了该算法的伪代码。优先级配置搜索算法PASA由两部分组成:初始化部分(1-6行)和搜索部分(7-40)。初始化部分的工作是按照给定算法FP(Γ)分配任务的常规优先级,并设定Hx、Ωy
Figure BDA0000037170150000086
和TE的初始值。搜索部分则完成最优优先级配置的搜索。在搜索部分中任务的响应时间Ri(x,y,z,TE)与时限Di的关系可分为两个分支。当Ri(x,y,z,TE)≤Di时(9-15行),即任务集可调度时,则将当前的Hx、Ωy
Figure BDA0000037170150000087
和TE值分别保存在
Figure BDA0000037170150000088
Figure BDA0000037170150000089
Figure BDA00000371701500000810
Figure BDA00000371701500000811
中,并将TE的值减1,开始下一轮的搜索。当Ri(x,y,z,TE)>Di(16-34行)时,则需要提高主版本的抢占阈值或者替代版本的容错优先级与容错阈值以减少被抢占时间。若TE<L(15行)或
Figure BDA00000371701500000812
(32行),则结束整个搜索过程。此时,所得到的
Figure BDA00000371701500000813
为τi的最优抢占阈值配置,
Figure BDA00000371701500000814
Figure BDA00000371701500000815
的最优容错优先级配置,
Figure BDA00000371701500000816
Figure BDA00000371701500000817
的最优容错阈值配置,而
Figure BDA00000371701500000818
则为在FT-FPPT*调度算法下所能承受的最小错误间隔。
现在考虑PASA算法的时间复杂度。当TE<L(15行)以及
Figure BDA0000037170150000101
(32行)时,PASA算法停止。在整个搜索迭代过程中,由于条件L≤TE是保证算法为真的必要条件,因此,搜索部分的时间复杂度取决于条件为真时的迭代次数。在最坏情况下,每次迭代过程集合Z(x,y,z)中仅有一个临界任务,算法通过提升该任务的容错优先级和容错阈值使得该集合Γ变为可调度的,而每次提升容错优先级和容错阈值都需要两次迭代,第一次用来提升临界任务的容错优先级和容错阈值,第二次用来保存容错优先级配置和容错阈值配置,又因为提升所有临界任务容错优先级和容错阈值的迭代次数为
Figure BDA0000037170150000103
那么在最坏情况下总的迭代次数为n·(n-1),所以搜索空间的复杂度为O(n2)。如果假设计算任务响应时间的时间复杂度为O(γ),则整个FTPCSA算法的时间复杂度为O(γ×n2)。
下面对本发明的实施例作详细说明:本实施例是在以本发明技术方案为前提下进行实施,并给出了详细的实施方式和过程,但本发明的适用范围不限于下述的实施例。
现对表1中的任务集合采取FT-FPPT*算法进行调度,任务的最坏响应时间见表2。当TE=8时,由于Ωx=<0,1,0>,τ2的抢占阈值变为3,这样τ1就不能在τ2执行时抢占其运行,从而缩短了τ2的响应时间,使得τ2能够按时完成;由于Hy=<0,0,1>且
Figure BDA0000037170150000104
τ3的容错优先级和容错阈值都变为2,这样τ2就不能抢占τ3执行,从而缩短了τ3的响应时间,使得τ3也能够按时完成,同时τ1也能满足截止期的要求,整个系统是可调度的。
表1
Figure BDA0000037170150000105
表2
Figure BDA0000037170150000106
从三种容错调度算法对系统容错能力的影响来看,在FT-FPP和FT-FPPT两种调度策略下,系统的容错能力均为TE=9,而在FT-FPPT*调度策略下,系统容错能力可以达到TE=6,提高了33%。这说明,FT-FPPT*能够在FT-FPP和FT-FPPT均无法提高系统容错能力的情况下,进一步提高系统的容错能力。
应用实例
为了对比FT-FPPT和FT-FPPT*两种调度算法在提高系统容错能力方面的性能,本实验将增量
Figure BDA0000037170150000112
作为衡量系统容错能力好坏的一个性能指标。显然,在FT-FPPT调度算法下,有ΔTe=0成立。FP(Γ)使用DMS算法分配任务的常规优先级πi,即任务的截止期越短,其常规优先级越高。
本实验模拟了5000个任务集,每个任务集包含10个任务。任务集Γ的处理器利用率
Figure BDA0000037170150000113
且满足Umin≤U≤Umax,其中Umin=0.01和Umax=0.9。对于任意给定的任务τi,其周期Ti,截至期Di,执行时间Ci和替代版本的执行时间
Figure BDA0000037170150000114
都是随机产生的,但需要满足如下条件:
(1)Ti和Di分别服从区间[10,1000]上的均匀分布;
(2)Ci=μ,Di,其中参数μ服从Umax/10的指数分布;
(3)
Figure BDA0000037170150000115
服从区间[1,Ci]上的均匀分布,因此有
Figure BDA0000037170150000116
成立。
如图2所示,黑点表示给定任务集计算出的ΔTe值,而图中的黑线则表示同一处理器利用率下所获得ΔTe的平均值。从图中可以看出,与FT-FPPT调度相比,采用FT-FPPT*调度在容错性能上得到了明显提高。当处理器利用率在<0。4,0。9>变化时,ΔTe的平均值增长幅度较大,始终保持在10%和20%之间,ΔTe的最大值可达到86%。这是因为,在处理器利用率较低的情况下,系统中的空闲时间较多,当发生错误时,系统可以利用这些空闲时间来达到容错的目的,因此,此时采用双重优先级分配策略对系统容错能力的提升影响不大,而在处理器利用率较高的情况下,系统中的空闲时间较少,当发生错误时,重优先级分配策略可以通过挪用高优先级任务的空闲时间来处理低优先级任务的容错,提高了系统的容错能力。

Claims (7)

1.一种适用于硬实时系统的任务调度方法,其特征在于包括以下步骤:
按照给定算法FP(Γ)分配任务的常规优先级;
设定抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置和容错间距TE的初始值;
根据任务的常规优先级以及抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure FDA0000037170140000012
和容错间距TE来计算任务的最坏情况响应时间Ri(x,y,z,TE);
判断Ri(x,y,z,TE)>Di吗?
当Ri(x,y,z,TE)>Di时,计算所得到的
Figure FDA0000037170140000013
为τi的最优抢占阈值配置,
Figure FDA0000037170140000014
的最优容错优先级配置,
Figure FDA0000037170140000016
Figure FDA0000037170140000017
的最优容错阈值配置,而
Figure FDA0000037170140000018
则为在FT-FPPT*调度算法下所能承受的最小错误间隔;
Figure FDA0000037170140000019
Figure FDA00000371701400000110
Figure FDA00000371701400000112
输出作为搜索算法的最终结果;
根据上述结果为任务分配抢占阈值、容错优先级配置及容错阈值配置,进行任务调度,获得所能承受的最小错误间隔。
2.按权利要求1所述用于硬实时系统的任务调度方法,其特征在于:
当Ri(x,y,z,TE)≤Di时,计算相应的抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure FDA00000371701400000113
和容错间距TE,并分别赋值给
Figure FDA00000371701400000114
Figure FDA00000371701400000116
返回判断“Ri(x,y,z,TE)>Di吗?步骤,直至满足条件Ri(x,y,z,TE)>Di
接续“计算所得到的
Figure FDA00000371701400000118
为τi的最优抢占阈值配置,
Figure FDA00000371701400000119
Figure FDA00000371701400000120
的最优容错优先级配置,
Figure FDA00000371701400000121
Figure FDA00000371701400000122
的最优容错阈值配置,而
Figure FDA00000371701400000123
则为在FT-FPPT*调度算法下所能承受的最小错误间隔”步骤。
3.按权利要求1所述用于硬实时系统的任务调度方法,其特征在于:
通过以下公式计算任务最坏情况响应时间Ri(x,y,z,TE):
R i ( x , y , z , T E ) = max ( R i ext ( x , y , z , T E ) , R i int ( x , y , z , T E ) )
式中表示外部错误最坏响应时间;
Figure FDA00000371701400000126
表示外部错误最坏响应时间;x,y,z为抢占阈值配置Hx、容错优先级配置Ωy、容错阈值配置
Figure FDA00000371701400000127
中的变量,TE为系统最小错误间隔。
4.按权利要求3所述用于硬实时系统的任务调度方法,其特征在于:外部错误最坏响应时间通过以下公式计算得到:
Figure FDA0000037170140000021
Figure FDA0000037170140000022
式中τi在时刻t前的响应时间
Figure FDA0000037170140000023
和在时刻t后的响应时间
Figure FDA0000037170140000024
Si(x,y,z,TE)为任务τi的最坏开始时间,Ci为任务τi的最坏执行时间,Ei为出错时间,
Figure FDA0000037170140000025
为替代版本
Figure FDA0000037170140000026
的最坏执行时间,
Figure FDA0000037170140000027
分别为替代版本
Figure FDA0000037170140000029
的容错优先级与容错阈值,πi和γi分别为主版本任务的常规优先级与抢占阈值。
5.按权利要求3所述用于硬实时系统的任务调度方法,其特征在于:内部错误最坏响应时间通过以下公式计算得到:
R i int ( x , y , z , T E ) = R i int 1 ( x , y , z , T E ) + R i int 0 ( x , y , z , T E )
式中τi在时刻t前的响应时间
Figure FDA00000371701400000211
和在时刻t后的响应时间
Figure FDA00000371701400000212
6.按权利要求5所述用于硬实时系统的任务调度方法,其特征在于:在时刻t前的响应时间通过以下公式计算得到:
7.按权利要求5所述用于硬实时系统的任务调度方法,其特征在于:在时刻t后的响应时间通过以下公式计算得到:
Figure FDA00000371701400000214
Figure FDA00000371701400000215
CN201010581324.0A 2010-12-09 2010-12-09 一种适用于硬实时系统的任务调度方法 Active CN102541646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010581324.0A CN102541646B (zh) 2010-12-09 2010-12-09 一种适用于硬实时系统的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010581324.0A CN102541646B (zh) 2010-12-09 2010-12-09 一种适用于硬实时系统的任务调度方法

Publications (2)

Publication Number Publication Date
CN102541646A true CN102541646A (zh) 2012-07-04
CN102541646B CN102541646B (zh) 2014-12-31

Family

ID=46348602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010581324.0A Active CN102541646B (zh) 2010-12-09 2010-12-09 一种适用于硬实时系统的任务调度方法

Country Status (1)

Country Link
CN (1) CN102541646B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197982A (zh) * 2013-03-28 2013-07-10 哈尔滨工程大学 一种任务局部最优检查点间隔搜索方法
CN104980330A (zh) * 2014-04-08 2015-10-14 中国科学院软件研究所 一种实时多智能体系统的消息准入方法
CN107144843A (zh) * 2017-04-25 2017-09-08 西安电子科技大学 基于图结构任务调度的并行测距方法
CN110187956A (zh) * 2019-05-07 2019-08-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
丁万夫 等: "《面向硬实时系统的容错调度算法研究》", 《小型微型计算机系统》 *
刘东 等: "《软件容错模型中的容错实时调度算法》", 《计算机发展与研究》 *
贺小川 等: "《FPTS:一种任务间存在共享资源时的抢占阈值调度算法》", 《计算机发展与研究》 *
韩建军 等: "《基于软件容错的动态实时调度算法》", 《计算机研究与发展》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197982A (zh) * 2013-03-28 2013-07-10 哈尔滨工程大学 一种任务局部最优检查点间隔搜索方法
CN103197982B (zh) * 2013-03-28 2016-03-09 哈尔滨工程大学 一种任务局部最优检查点间隔搜索方法
CN104980330A (zh) * 2014-04-08 2015-10-14 中国科学院软件研究所 一种实时多智能体系统的消息准入方法
CN104980330B (zh) * 2014-04-08 2018-06-19 中国科学院软件研究所 一种实时多智能体系统的消息准入方法
CN107144843A (zh) * 2017-04-25 2017-09-08 西安电子科技大学 基于图结构任务调度的并行测距方法
CN107144843B (zh) * 2017-04-25 2019-12-31 西安电子科技大学 基于图结构任务调度的并行测距方法
CN110187956A (zh) * 2019-05-07 2019-08-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统

Also Published As

Publication number Publication date
CN102541646B (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
CN106293919B (zh) 一种时间触发的嵌入式任务调度装置与方法
Lin et al. Minimization of total tardiness on unrelated parallel machines with sequence-and machine-dependent setup times under due date constraints
EP1480144A1 (en) Planning and scheduling for failure recovery system and method
CN105467953B (zh) 一种面向工业大数据的知识表示及其自动化应用方法
CN107291548A (zh) 任务的资源调度方法及装置
CN102541646A (zh) 一种适用于硬实时系统的任务调度方法
JP2010534891A5 (zh)
CN109684060A (zh) 一种多类型时间关键任务的混合调度方法
CN104375893A (zh) 一种基于两级操作系统架构的分区调度方法
Massa et al. OUTSTANDING PAPER: Optimal and adaptive multiprocessor real-time scheduling: The quasi-partitioning approach
CN103246938A (zh) 基于自适应蚁群优化的弹性车间调度技术
Germs et al. Analysis of finite-buffer state-dependent bulk queues
Cavone et al. Hybrid Petri nets to re-design low-automated production processes: the case study of a sardinian bakery
CN110187956A (zh) 一种多智能体平台的分层实时任务调度方法和系统
CN105808346B (zh) 一种任务调度方法与装置
CN110750345A (zh) 一种数字孪生系统复杂任务高效调度系统
CN109976823A (zh) 一种应用程序启动方法、装置及终端设备
CN104063282B (zh) IaaS云可变规模资源池管理方法、装置和服务器
CN114997280A (zh) 基于人机协同控制决策机制的故障致因链构建方法及系统
CN106484545A (zh) 调用子程序的方法及装置
CN103164258B (zh) 一种适用于数控系统的容错实时调度方法
CN106559813A (zh) 一种网络评估方法及装置
CN110247818A (zh) 一种数据监控方法、装置、存储介质和服务器
CN105260497A (zh) 基于线性链表的实时任务可调度性测试半直接模拟方法
CN106021415A (zh) 一种数据检核方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY CO., LTD.

Effective date: 20150803

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150803

Address after: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee after: Shenyang Institute of computing technology, Chinese Academy of Sciences

Address before: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee before: Shenyang Institute of computing technology, Chinese Academy of Sciences

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.