一种面向混合关键性实时系统的容错性任务调度方法与流程

文档序号:12271060阅读:来源:国知局

技术特征:

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:实时约束关系的建立:

<mrow> <mo>&ForAll;</mo> <msub> <mi>&tau;</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>&Gamma;</mi> <mo>:</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>L</mi> <mi>O</mi> <mo>)</mo> </mrow> <mo>&le;</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>H</mi> <mi>I</mi> <mo>)</mo> </mrow> <mo>&le;</mo> <msub> <mi>D</mi> <mi>i</mi> </msub> <mo>&le;</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> </mrow>

其中Ci(LO)表示τi为低关键性任务时的最坏执行时间,Ci(HI)表示τi为高关键性任务时的最坏执行时间;

步骤A4:任务释放时间约束关系的建立:

<mrow> <mo>&ForAll;</mo> <msub> <mi>&tau;</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>&Gamma;</mi> <mo>:</mo> <msubsup> <mi>r</mi> <mi>i</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>&GreaterEqual;</mo> <msubsup> <mi>r</mi> <mi>i</mi> <mi>k</mi> </msubsup> <mo>+</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> </mrow>

其中为任务τi的第k个作业的释放时间。

3.根据权利要求1所述的一种面向混合关键性实时系统的容错任务调度方法,其特征在于,所述步骤(2)具体包括以下步骤:

步骤B1:低关键性任务子集LO(Γ)模型的建立:

LO(Γ)={τi∈Γ|Li=LO};

步骤B2:高关键性任务子集HI(Γ)模型的建立:

HI(Γ)={τi∈Γ|Li=HI};

步骤B3:任务执行次数γi模型的建立:

γi=2Ni+1;

步骤B4:任务虚拟截止时间模型的建立:

<mrow> <msubsup> <mi>VD</mi> <mi>i</mi> <mi>k</mi> </msubsup> <mo>=</mo> <msubsup> <mi>r</mi> <mi>i</mi> <mi>k</mi> </msubsup> <mo>+</mo> <msub> <mi>D</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&Delta;</mi> <mi>i</mi> </msub> </mrow>

其中Δ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)模型的建立:

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msub> <mi>&lambda;C</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>L</mi> <mi>O</mi> <mo>)</mo> </mrow> </mrow> </msup> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>&tau;</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>L</mi> <mi>O</mi> <mrow> <mo>(</mo> <mi>&Gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>1</mn> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msub> <mi>&lambda;C</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>H</mi> <mi>I</mi> <mo>)</mo> </mrow> </mrow> </msup> <mo>)</mo> </mrow> <mn>3</mn> </msup> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>&tau;</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <mi>H</mi> <mi>I</mi> <mrow> <mo>(</mo> <mi>&Gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,λ为任务τi的平均到达错误率;

步骤E2:系统安全指标S(Г,H)模型的建立:

其中,超周期H是周期{T1,T2,…,Tn}的最小公倍数,是按时执行完的任务实例个数,是任务实例总数;

步骤E3:采用重执行方法的任务集利用率U模型的建立:

其中,任务集利用率不能超过1,即U≤1;

步骤E4:根据记录的任务执行情况,比较得到故障检验的结果如果是错误的,转步骤E6。

步骤E5:从Qready出队,转步骤E6;

步骤E6:所有低关键性任务从Qready出队并执行即存在错误需要重新执行。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1