1.一种面向混合关键性实时系统的容错任务调度方法,其特征在于,包括以下步骤:
(1)任务集模型建立;
(2)任务集预处理,就绪队列置空;
(3)判断就绪队列以及系统的状态;
(4)根据任务关键性执行任务;
(5)验错并判断是否重执行;
(6)任务执行完毕,转步骤(3)。
2.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(1)具体包括以下步骤:
步骤A1:双关键任务集Γ模型的建立:
Γ={τ1,τ2,…,τi,…τn}
其中n为任务集Γ中相互独立的实时周期性任务的个数;
步骤A2:双关键任务τi模型的建立:
τi={Ti,Di,Ni,Li,Ci}
其中1≤i≤n,Ti为任务τi的周期,Di为任务τi的相对截止时间,Ni为任务τi在执行时可以被容忍的最大瞬时错误个数,Li∈{LO,HI}为任务τi的关键性,LO为低关键性,HI为高关键性,Ci为任务τi在最坏情况下的执行时间;
步骤A3:实时约束关系的建立:
其中Ci(LO)表示τi为低关键性任务时的最坏执行时间,Ci(HI)表示τi为高关键性任务时的最坏执行时间;
步骤A4:任务释放时间约束关系的建立:
其中为任务τi的第k个作业的释放时间。
3.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(2)具体包括以下步骤:
步骤B1:低关键性任务子集LO(Γ)模型的建立:
LO(Γ)={τi∈Γ|Li=LO};
步骤B2:高关键性任务子集HI(Γ)模型的建立:
HI(Γ)={τi∈Γ|Li=HI};
步骤B3:任务执行次数γi模型的建立:
γi=2Ni+1;
步骤B4:任务虚拟截止时间模型的建立:
其中Δi是实际释放时间和虚拟释放时间的偏移量;
步骤B5:根据步骤B4对周期转换技术(PT)进行改进,然后应用于任务集,进行预处理,可得到
步骤B6:建立就绪队列Qready,并置空。
4.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(3)具体包括以下步骤:
步骤C1:把Γ′中释放的任务加到就绪队列Qready;
步骤C2:如果系统处于空闲状态(State=idle)并且就绪队列非空转步骤C3;
否则转步骤(2);
步骤C3:根据最小截止时间优先-虚拟截止时间(EDF-VD)算法将任务从Qready中出队。
5.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(4)具体包括以下步骤:
步骤D1:低关键性任务子集LO(Γ)模型的建立:
LO(Г)={τi∈Г|Li=LO};
步骤D2:高关键性任务子集HI(Γ)模型的建立:
HI(Г)={τi∈Г|Li=HI};
步骤D3:判断任务的关键性;
步骤D4:如果Li=HI,转步骤D6;否则转步骤D5;
步骤D5:执行转步骤D6;
步骤D6:执行并利用fingerprint技术存储任务执行情况,以用于故障检验。
6.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(5)具体包括以下步骤:
步骤E1:采用重执行方法的任务可靠性R(τi)模型的建立:
其中,λ为任务τi的平均到达错误率;
步骤E2:系统安全指标S(Г,H)模型的建立:
其中,超周期H是周期{T1,T2,…,Tn}的最小公倍数,是按时执行完的任务实例个数,是任务实例总数;
步骤E3:采用重执行方法的任务集利用率U模型的建立:
其中,任务集利用率不能超过1,即U≤1;
步骤E4:根据记录的任务执行情况,比较得到故障检验的结果如果是错误的,转步骤E6。
步骤E5:从Qready出队,转步骤E6;
步骤E6:所有低关键性任务从Qready出队并执行即存在错误需要重新执行。