会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 截止时间 / 一种多核实时容错系统中获取准确的最晚截止时间的方法

一种多核实时容错系统中获取准确的最晚截止时间的方法

申请号 CN201310739053.0 申请日 2013-12-27 公开(公告)号 CN103699455A 公开(公告)日 2014-04-02
申请人 重庆大学; 发明人 沙行勉; 吴剀劼; 崔晓通;
摘要 本发明提出了一种多核实时容错系统中获取准确的最晚截止时间的方法,包括如下步骤:根据给定的任务调度,在保持原有数据依赖的基础上,为调度在同一核上的相邻任务增加调度顺序依赖;增加两个执行时间为0的虚拟任务节点,使得在任务调度中,其中一个虚拟节点先于所有任务执行,另外一个后于所有任务执行;假设在任务执行过程中最多出现X个软错误,在原有调度的基础上通过出错任务在同一核上立即重新执行来实现容错,并确定任务集合的关键任务,获取任务集合的准确的最晚截止时间。若任务集合中包含N个任务,并且在执行过程中最多出现X个软错误,本发明能够在O(n^2)时间内确定任务集合的准确的最晚截止时间,保证容错,高效快速。
权利要求

1.一种多核实时容错系统中获取准确的最晚截止时间的方法,其特征在于,包括如下步骤:S1,根据多核系统的任务调度,在保持原有数据依赖的基础上,为在同一核上执行的相邻任务增加调度顺序依赖,建立新的有向无环图;

S2,在新的有向无环图的基础上,增加两个虚拟任务节点,所述虚拟任务的执行时间为

0,在以该有向无环图为模型的任务调度中,其中一个虚拟任务节点最先执行,另外一个虚拟任务节点最后执行;

S3,假设在任务执行过程中最多出现X个软错误,在原有调度的基础上通过出错任务在同一核上的立即重新执行来实现容错,保证任务集合的正确执行,并确定任务集合的关键任务,获取任务集合的准确的最晚截止时间;

S4,衡量任务集合的准确的最晚截止时间是否满足当前多核实时容错系统中的工作时限需求,如果满足,则退出,如果不满足,则调整调度策略,返回步骤S1。

2.如权利要求1所述的多核实时容错系统中获取准确的最晚截止时间的方法,其特征在于,所述步骤S1具体包括如下步骤:S11,获取任务集合中任务的个数N,以及任务集合执行过程中可能发生的最大软错误的个数X;

S12,用有向无环图表示任务间的数据依赖;

S13,根据给定的任务调度,如果两个任务在同一核上被调度执行并且调度顺序相邻,则增加这两个任务间的调度顺序依赖,并在原来的有向无环图的基础上增加表示调度顺序依赖的边,得到新的有向无环图;

S14,获取每个任务节点的执行时间存入任务节点的数据结构中,获取边的权重存入数组中。

3.如权利要求1所述的多核实时容错系统中获取准确的最晚截止时间的方法,其特征在于,所述步骤S2具体步骤为:在新的有向无环图基础上增加两个节点,源节点和汇聚节点,并设这两个节点的执行时间为0;对于所有没有父节点的任务节点,增加一条从源节点到该节点的边;对于所有没有子节点的任务节点,增加一条从该节点到汇聚节点的边,同时将所有与源节点和汇聚节点相连的边的权重设为0。

4.如权利要求1所述的多核实时容错系统中获取准确的最晚截止时间的方法,其特征在于,所述步骤S3具体包括如下步骤:S31,初始化每个任务的最早截止时间为所有任务都不发生错误时该任务的完成时间;

初始化每个任务的最晚截止时间为0;

S32,以一个任务节点I作为输入,该任务可以是任何一个节点;如果该任务节点I的最晚截止时间大于0,说明该任务节点已经被计算过,直接返回其最晚截止时间及其关键任务;如果该任务节点的父节点集合包含源节点,则该任务的关键任务是它本身,通过让该任务发生所有错误来获得该任务的最晚截止时间;否则进入下一步骤;

S33、递归的遍历求解该任务节点I的所有父节点的最晚截止时间以及对应的关键任务;

S34、假设任务I共有m个父节点,且它们的最晚截止时间分别为F(I)1,F(I)2,…,F(I)m,分别在F(I)1,F(I)2,…,F(I)m的基础上计算任务I的完成时间,分别为I1,I2,…,Im,同时计算其他任务都不发生错误而只有任务I发生所有X个软错误的完成时间I0,将I0与I1,I2,…,Im进行比较,选取最大的作为任务I的最晚截止时间,同时确定该任务节点I的关键任务是其本身还是S33中所求得的关键任务。

说明书全文

一种多核实时容错系统中获取准确的最晚截止时间的方法

技术领域

[0001] 本发明涉及领域,具体涉及一种多核实时容错系统中获取准确的最晚截止时间的方法。

背景技术

[0002] 多核实时系统的实时应用通常由很多任务组成,并且要求这些任务需要在截止时间前完成。例如在一个多核实时系统中,任务之间具有依赖关系,一般用有向无环图来表示这些任务。
[0003] 图1(a)是一个任务调度图,表示出了图中任务的调度执行顺序,即任务被分配到哪一个核上执行,以及开始执行时间。任务在某一个核上执行过程中有可能发生软错误,为了保证得到正确的结果,必须提供容错。一种简单并且常见的方法是让该任务在同一核上立即重新执行,如图1(b)所示,图中阴影是发生错误的任务。
[0004] 现有方法中,多核实时容错系统中实时应用截止时间的计算方法是让每个核上具有最长执行时间的任务发生所有错误以获得每个核上任务的最晚截止时间,如果任务之间没有依赖关系,这种计算方法是准确的。例如图1(b)中,分别每个核上具有最长执行时间的任务发生两个错误,任务T4发生两次错误的截止时间是19个时间单位,任务T2发生两次错误的截止时间是15个时间单位,任务T3发生两次错误的截止时间是14个时间单位,因此该多核实时系统应用运行的最优截止时间是19个时间单位。但是,如果任务之间有依赖关系,这种方法就不准确。例如,图1(a)中6个任务分配在三个核上。图中的箭头表示任务之间的数据依赖关系,在同一核上和不同核上的任务之间的通信延迟分别被假定为0和1。图1(c)显示的情况下,T4发生两次故障,截止时间是19个时间单位。而图1(d)中,处理器P0执行的任务T2发生两次故障,截止时间是20个时间单位。很明显,图1(d)中所示情况更糟糕。因此,现有截止时间的计算方法可能低估了真实情况。
[0005] 另外,由于每个任务发生错误的个数不确定,现有方法是穷举所有可能的情况,进行比较,然后选择截止时间。这种方法的缺点是:当确定每个任务发生多少个错误之2
后,获得任务集合的最晚截止时间的时间复杂度为O(N),但是由于需要考虑所有情况:
N个任务发生X个错误共有 种情况,因此总的时间复杂度为
非常浪费时间。

发明内容

[0006] 为了克服上述现有技术中存在的缺陷,本发明的目的是提供一种多核实时容错系统中获取准确的最晚截止时间的方法,本发明能够高效快速地获得任务集合的最晚截止时间。
[0007] 为了实现本发明的上述目的,本发明提供了一种多核实时容错系统中获取准确的最晚截止时间的方法,其包括如下步骤:
[0008] S1,根据多核系统的任务调度,在保持原有数据依赖的基础上,为调度在同一核上执行的相邻任务增加调度顺序依赖,并建立新的有向无环图;
[0009] S2,在新的有向无环图的基础上,增加两个虚拟任务节点,所述虚拟任务的执行时间为0,在以该有向无环图为模型的任务调度中,其中一个虚拟任务节点最先执行,另外一个虚拟任务节点最后执行,因其执行时间为0,不增加最晚截止时间;
[0010] S3,假设在任务执行过程中最多出现X个软错误,在原有调度的基础上通过出错任务在同一核上的立即重新执行来实现容错,保证任务集合的正确执行,并确定任务集合的关键任务,获取任务集合准确的最晚截止时间;
[0011] S4,衡量任务集合的最晚截止时间是否满足当前多核实时容错系统中的工作需求,如果满足,则退出,如果不满足,则调整调度策略,返回步骤S1。
[0012] 在本发明的一种优选实施方式中,所述步骤S1具体包括如下步骤:
[0013] S11,获取任务集合中任务的个数N,以及任务集合执行过程中可能发生的最大软错误的个数X
[0014] S12,用有向无环图表示任务间的数据依赖;
[0015] S13,根据给定的任务调度,如果两个任务在同一核上被调度执行并且调度顺序相邻,则增加这两个任务间的调度顺序依赖,并在原来的有向无环图的基础上增加表示调度顺序依赖的边,得到新的有向无环图;
[0016] S14,获取每个任务节点的执行时间存入任务节点的数据结构中,获取边的权重存入数组中。
[0017] 在本发明的另一种优选实施方式中,所述步骤S2具体步骤为:
[0018] 在新的有向无环图基础上增加两个节点,源节点和汇聚节点,并设这两个节点的执行时间为0;对于所有没有父节点的任务节点,增加一条从源节点到该节点的边;对于所有没有子节点的任务节点,增加一条从该节点到汇聚节点的边。同时将与源节点和汇聚节点相连的边的权重设为0。
[0019] 在本发明的一种优选实施方式中,所述步骤S3具体包括如下步骤:
[0020] S31,初始化每个任务的最早截止时间为所有任务都不发生错误时该任务的完成时间;初始化每个任务的最晚截止时间为0;
[0021] S32,以一个任务节点I作为输入,该任务可以是任何一个节点;如果该任务节点I的最晚截止时间大于0,说明该任务节点已经被计算过,直接返回其最晚截止时间及其关键任务;如果该任务节点的父节点集合包含源节点,则该任务的关键任务是它本身,通过让该任务发生所有错误来获得该任务的最晚截止时间;否则进入下一步骤;
[0022] S33,递归的遍历求解该任务节点I的所有父节点的最晚截止时间以及对应的关键任务;
[0023] S34,假设任务I共有m个父节点,且它们的最晚截止时间分别为F(I)1,F(I)2,…,F(I)m。分别在F(I)1,F(I)2,…,F(I)m的基础上计算任务I的完成时间,得到I1,I2,…,Im。同时计算其他任务都不发生错误而只有任务I发生所有X个软错误的完成时间I0并与I1,I2,…,Im进行比较,选取最大值作为任务I的最晚截止时间,同时确定该任务节点I的关键任务是其本身还是S33中所求得的关键任务。
[0024] 本发明的有益效果是:
[0025] 本发明能够快速衡量任务集合的最优截止时间是否满足当前多核实时系统中的工作需求。
[0026] 本发明获取的最晚截止时间是准确的。假如系统设定的截止时间比这个时间小,则有大于0的概率导致在截止时间内不能容错所有X个错误;假如系统设定的截止时间比这个时间大,则会造成时间上的浪费。
[0027] 本发明能够在O(n^2)时间内确定任务集合准确的最晚截止时间,相比于现有技术高效快速。
[0028] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0029] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0030] 图1为现有技术中的任务调度图,其中,图1(a)为所有任务都没有发生错误时的任务调度图;图1(b)每个核上具有最长执行时间的任务分别发生两次错误时的容错任务调度图,任务之间没有数据依赖关系;图1(c)为任务集合中T4(具有最长的执行时间)发生两次错误时的容错任务调度图;图1(d)为任务集合中T2发生两次错误时的容错任务调度图;
[0031] 图2为本发明一种优选实施方式中对步骤S1和S2解释的任务调度图及其有向无环图,其中,图2(a)表示任务集合中原有数据依赖的有向无环图;图2(b)为任务调度图;图2(c)为本发明在图2(a)的基础上为调度在同一核上的相邻任务增加调度顺序依赖后的有向无环图;图2(d)为本发明在图2(c)的基础上增加源节点Tsr和汇聚节点Tsk后的有向无环图;
[0032] 图3为本发明另一种优选实施方式中对步骤S3解释的有向无环图。

具体实施方式

[0033] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0034] 本发明提供了一种多核实时容错系统中获取准确的最晚截止时间的方法,其包括如下步骤:
[0035] 第一步:用有向无环图表示任务间的数据依赖,如图2(a)所示;
[0036] 图2(b)中表示出了任务调度图,任务T1、T2、T3、T4、T5、T6的执行时间分别是4、10、3、4、5、3个时间单位。
[0037] 根据图2(b)所示的多核系统的任务调度,在保持原有数据依赖的基础上,为调度在同一核上的相邻任务增加调度顺序依赖,建立新的有向无环图,如图2(c)中虚线所示,增加核P2上任务T2与任务T5之间的调度顺序依赖,增加核P3上任务T3与任务T6之间的调度顺序依赖,建立新的有向无环图。在本实施方式中,具体可以采用如下步骤:
[0038] A,根据每个任务的开始执行时间对任务进行排序组成任务链表,从链表头部进行扫描,即从该核上最先被调度执行的任务进行扫描,设索引记为i,令i=1;
[0039] B,令j=i+1,若j>N则停止,否则若任务Ti和任务Tj被分配到同一个核上,则在原有数据依赖的基础上增加一条从节点Ti到节点Tj表示调度顺序的边,令i=i+1,返回步骤B。
[0040] 最后,获取每个任务节点Ti的执行时间CTi存入任务节点的数据结构中,获取边的权重存入数组中。
[0041] 第二步,在新的有向无环图基础上增加两个节点,源节点Tsr和汇聚节点Tsr,如图2(d)所示,并设这两个节点的执行时间为0;对于所有没有父节点的任务节点,增加一条从源节点到该节点的边,本实施方式中,即增加从源节点Tsr到任务节点T1、T2和T3的边;对于所有没有子节点的任务节点,增加一条从该节点到汇聚节点的边,在本实施方式中,即增加从任务节点T5到汇聚节点Tsk的边。同时设定本步骤增加的所有边的权重为0。
[0042] 第三步,确定任务集合的关键任务,获取最优截止时间。具体包括如下步骤:
[0043] S31,初始化每个任务Ti的最早截止时间BCFT(Ti)为所有任务都不发生错误时该任务的完成时间;初始化每个任务Ti的最晚截止时间WCFT(Ti)为0;初始化每个任务Ti的关键任务为CT(Ti)=Tnull;初始化可能的最大软错误个数X。在本实施方式中,i=1,2,...,N。
[0044] S32,以一个任务节点Ti作为输入,该任务可以是任何一个节点;如果该任务节点Ti的最晚截止时间大于0,说明该任务节点已经被计算过,直接返回其最晚截止时间及其关键任务;如果该任务节点的父节点集合包含源节点,则该任务的关键任务是它本身,通过让该任务发生所有错误可以得到该任务的最晚截止时间;否则进入下一步骤S33;
[0045] S33,递归的遍历求解该任务节点Ti的所有父节点的最晚截止时间以及对应的关键任务;
[0046] S34,假设任务Ti共有m个父节点,且它们的最优截止时间分别为F(Ti)1,F(Ti)2,…,F(Ti)m。分别在F(Ti)1,F(Ti)2,…,F(Ti)m的基础上计算任务Ti的完成时间,得到I1,I2,…,Im。同时计算任务Ti发生所有X个错误的完成时间I0并与I1,I2,…,Im进行比较,选取最大值作为任务Ti的最晚截止时间,同时确定该任务节点Ti的关键任务是其本身还是S33中所求得的关键任务。
[0047] 在本实施方式中,如图3所示,初始化每个任务的最早截止时间为所有任务都不发生错误时该任务的完成时间,即BCFT(T1)=CT1、BCFT(T2)=CT2、BCFT(T3)=max{CT1+CT3+W(T1+T3),CT2+CT3+W(T2+T3)},其中CTi为任务Ti的执行时间;初始化每个任务的最晚截止时间为0,即WCFT(T1)=WCFT(T2)=WCFT(T3)=0;初始化每个任务的关键任务CT(T1)=CT(T2)=CT(T3)=Tnull;初始化可能的最大软错误个数X。
[0048] 令任务节点Ti作为输入,该任务可以是任何一个节点,在本实施方式中,优选令i=1;如果该任务节点Ti的最晚截止时间大于0,说明该任务节点已经被计算过,直接返回其最晚截止时间及其关键任务;如果该任务节点的父节点集合包含源节点,则该任务的关键任务是它本身,例如对于任务节点T1和T2,通过让该任务发生所有错误可以得到该任务的最晚截止时间,即
[0049] WCFT(T1)=CT1+X*CT1 CT(T1)=T1
[0050] WCFT(T2)=CT2+X*CT2 CT(T2)=T2
[0051] 如果该任务节点的父节点集合不包含源节点,则进入下一步骤S33;
[0052] S33,输入任务节点Ti,递归遍历求解该任务节点所有的父节点的最优截止时间,取父节点中具有最大最晚截止时间的父节点和对应的关键任务,并记录该父节点到该任务节点的边的权重。例如,对于任务节点T3,递归遍历求解该任务节点的父节点T1和T2的最晚截止时间,分别加上任务节点T1和T2到T3的边的权重W(T1,T3)、W(T2,T3)以及T3的执行时间CT3,分别为:
[0053] WCFT(T1)+W(T1,T3)+CT3
[0054] WCFT(T2)+W(T2,T3)+CT3
[0055] 在本实施方式中,权重表示数据依赖的传输时延,例如W(T1,T3)是指任务T1执行结束至任务T3开始执行的时延。
[0056] 让该任务T3发生所有错误所得到的完成时间BCFT(T3)+X*CT3与以上得到的WCFT(T1)+W(T1,T3)+CT3、WCFT(T2)+W(T2,T3)+CT3相比较,最大的则为任务T3的最晚截止时间,同时能够确定该任务的关键任务。例如,如果max{WCFT(T1)+W(T1,T3)+CT3,WCFT(T2)+W(T2,T3)+CT3,BCFT(T3)+X*CT3}=WCFT(T1)+W(T1,T3),则任务T3的最晚截止时间为WCFT(T1)+W(T1,T3)+CT3,任务T3的关键任务是CT(T3)=T1。
[0057] 在确定任务集合的最晚截止时间后,本发明还包括如下步骤:衡量任务集合的最晚截止时间是否满足多核实时容错系统的工作需求,如果满足,则退出,如果不满足,则调整对该任务集合的调度策略,返回第一步。具体任务调度的调整方式可根据实际情况确定,不是本发明的保护重点,此处不做过多赘述。
[0058] 需要说明的是,在本实施方式中,对于不同的多核系统,能够发生的最大软错误数量X可以不同,具体的数值可以根据实验测量获得。
[0059] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0060] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。