用于組成并執(zhí)行實(shí)時(shí)任務(wù)的方法
【專利摘要】提供了一種用于以分時(shí)共享執(zhí)行兩個(gè)任務(wù)的方法,包括步驟:以與任務(wù)相關(guān)聯(lián)的時(shí)基對連續(xù)幀的重復(fù)序列中的每個(gè)任務(wù)進(jìn)行離線分解,其中每個(gè)幀與具有執(zhí)行需求的原子操作相關(guān)聯(lián),并且定義了該操作可以開始的開始日期以及該操作必須結(jié)束的截止期限,由此每個(gè)幀定義了該操作可以在其中開始的時(shí)間余裕;針對該重復(fù)序列中的第一個(gè)中的每個(gè)幀驗(yàn)證相對應(yīng)的操作能夠在第二重復(fù)序列中的幀群組的任意兩次連續(xù)操作之間執(zhí)行,將第一重復(fù)序列中的幀(Fai)進(jìn)行交疊,同時(shí)遵守操作的開始日期和截止期限;并且如果該驗(yàn)證被滿足,則允許兩個(gè)任務(wù)執(zhí)行。隨后根據(jù)在每個(gè)關(guān)鍵日期所評估的以下情形對這兩個(gè)任務(wù)的操作進(jìn)行調(diào)度,其中關(guān)鍵日期在每個(gè)截止期限、每個(gè)開始日期以及每次操作結(jié)束時(shí)出現(xiàn):如果兩個(gè)操作能夠開始,則執(zhí)行具有較短截止日趨的操作;并且如果能夠開始單個(gè)操作,則僅在其執(zhí)行需求小于直到另一序列中的下一個(gè)幀的開始日期之前的剩余時(shí)間加上與另一序列的所述下一個(gè)幀相關(guān)聯(lián)的時(shí)間余裕的情況下才執(zhí)行它。
【專利說明】
用于組成并執(zhí)行實(shí)時(shí)任務(wù)的方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及多任務(wù)實(shí)時(shí)關(guān)鍵系統(tǒng),諸如在運(yùn)輸(汽車、鐵路、海運(yùn)、航空)、工業(yè)自動(dòng)化、能源領(lǐng)域中使用的控制和監(jiān)視系統(tǒng),以及如通信網(wǎng)絡(luò)中針對其受控資源分配非常重要的其它系統(tǒng)。本發(fā)明涉及在分配至系統(tǒng)中的每個(gè)任務(wù)的硬件資源的使用方面針對其要求高級別實(shí)施性能的實(shí)時(shí)系統(tǒng)以及針對其要求高級別保證的關(guān)鍵系統(tǒng)。
【背景技術(shù)】
[0002]在關(guān)鍵實(shí)時(shí)系統(tǒng)一一即不容許由于操作的延后執(zhí)行而違反任何截止期限的系統(tǒng)一一之中,任務(wù)經(jīng)常通過靜態(tài)調(diào)度方法來執(zhí)行。因此針對執(zhí)行資源的需求的靜態(tài)時(shí)間分配被離線構(gòu)造,這說明了任務(wù)在它們之間的資源尤其是處理器的使用方面的時(shí)間獨(dú)立性。這種方法例如在文章[“A method and a technique to model and ensure timelinessin safety critical real-time systems”,C.Aussagues,V.David,F(xiàn)ourth IEEEInternat1nal Conference on Engineering of Complex Computer Systems,1998]以及專利申請W02006-050967和US2010-0199280中有所描述。
[0003]然而,該方法要求僅針對所有活動(dòng)考慮單個(gè)定序計(jì)劃,因此在確定截止期限時(shí)僅考慮單個(gè)時(shí)基。這使得針對具有不相關(guān)時(shí)基的任務(wù)而言難以在單個(gè)處理器上實(shí)現(xiàn)無干擾的實(shí)施方式,上述任務(wù)諸如使用時(shí)鐘來確定其截止期限的任務(wù)以及使用速度可變對象的位置來確定其截止期限的任務(wù)。這將隱含地構(gòu)建以共用時(shí)基作為時(shí)鐘的兩個(gè)定序計(jì)劃,使得它們能夠在任務(wù)之間沒有干擾的情況下被組合在單個(gè)定序計(jì)劃之中。這實(shí)際上僅能夠在資源明顯過多從而考慮每種情形下的最差狀況的情況下才能夠?qū)崿F(xiàn)。
[0004]在一些具有高性能級別的實(shí)時(shí)系統(tǒng)中一一其之所以并未被定義為“關(guān)鍵”是因?yàn)樗鼈兡軌蛉萑淘谀硞€(gè)余裕之內(nèi)違反截止期限,以不同時(shí)基作為時(shí)鐘的兩個(gè)定序計(jì)劃的組合通過動(dòng)態(tài)調(diào)度算法來執(zhí)行。這樣的算法例如在[“Schedul ing algorithms formultiprogramming in a hard real-time environment”,C.Liu,J.Layland,Journal ofthe ACM,voI.20,n0.I,pp.46-61]和[“Foundat1ns of Real-Time Computing:Scheduling and Resource Management”,由AndreM.Van Tilborg1Gary M.Koob所編輯,1991 ,Kluwer Academic Publishers]以及還在[“A method and a technique to modeland ensure timeliness in safety critical real-time systems”,C.Aussagues,V.David, Fourth IEEE Internat1nal Conference on Engineering of ComplexComputer Systems,1998]中有所描述。
[0005]利用這些算法,搶占是不可避免的,即操作系統(tǒng)能夠中斷正在進(jìn)行的操作以執(zhí)行更為緊迫的操作。調(diào)度為動(dòng)態(tài)的情況下,搶占的數(shù)量和持續(xù)時(shí)間是無法確定的,并且每次搶占都引入執(zhí)行環(huán)境切換的開銷。這導(dǎo)致任務(wù)之間的干擾,從而系統(tǒng)更加難以設(shè)置大小、不太能夠預(yù)測并且無法在復(fù)雜的處理器架構(gòu)上進(jìn)行再現(xiàn)。這樣的系統(tǒng)的設(shè)計(jì)人員還遇到了在具有兩個(gè)不同時(shí)基的系統(tǒng)中適當(dāng)設(shè)置任務(wù)優(yōu)先級或截止日期的困難。諸如根據(jù)應(yīng)用參數(shù)數(shù)值的執(zhí)行需求變化之類的所選擇的選項(xiàng)使得以這種方式所構(gòu)建的系統(tǒng)非常復(fù)雜且無法控制。
【發(fā)明內(nèi)容】
[000?]因此需要一種即使兩個(gè)計(jì)劃的時(shí)基有所不同也能夠以分時(shí)共享(timesharing)的方式執(zhí)行兩個(gè)定序計(jì)劃而沒有干擾的技術(shù)。
[0007]這需求通過提供一種用于以分時(shí)共享執(zhí)行兩個(gè)任務(wù)的方法而被解決,該方法包括步驟:以與任務(wù)相關(guān)聯(lián)的時(shí)基對連續(xù)幀的重復(fù)序列中的每個(gè)任務(wù)進(jìn)行離線分解,其中每個(gè)幀與具有執(zhí)行需求的原子操作相關(guān)聯(lián),并且定義了該操作可以開始的開始日期以及該操作必須結(jié)束的截止期限,由此每個(gè)幀定義了該操作可以在其中開始的時(shí)間余裕;針對該重復(fù)序列中的第一個(gè)中的每個(gè)幀驗(yàn)證相對應(yīng)的操作能夠在第二重復(fù)序列中的幀群組的任意兩次連續(xù)操作之間執(zhí)行,同時(shí)遵守操作的開始日期和截止期限,所述第二重復(fù)序列中的幀群組與第一重復(fù)序列中的幀交疊;并且如果該驗(yàn)證被滿足,則允許兩個(gè)任務(wù)執(zhí)行。
[0008]隨后根據(jù)在每個(gè)關(guān)鍵日期所評估的以下情形對這兩個(gè)任務(wù)的操作進(jìn)行調(diào)度,其中關(guān)鍵日期在每個(gè)截止期限、每個(gè)開始日期以及每次操作結(jié)束時(shí)出現(xiàn):如果兩個(gè)操作能夠開始,則執(zhí)行具有較短截止期限的操作;并且如果單個(gè)操作能夠開始,則僅在其執(zhí)行需求小于直到另一序列中的下一個(gè)幀的開始日期之前的剩余時(shí)間加上與另一序列的所述下一個(gè)幀相關(guān)聯(lián)的時(shí)間余裕的情況下才執(zhí)行它。
[0009]每個(gè)幀可以進(jìn)一步包括位于該幀的截止期限之后或者該幀的開始日期之前的保留時(shí)間間隔,其可以為零,其中任意一個(gè)重復(fù)序列的保留時(shí)間間隔可以被用來執(zhí)行另一重復(fù)序列的操作。
[0010]該驗(yàn)證步驟可以包括以下步驟:
[0011 ].針對第一重復(fù)序列的每個(gè)幀F(xiàn)a1,評估第二重復(fù)序列的每個(gè)幀F(xiàn)bj的以下條件:
[0012][A.l]Dai^Tbj+i
[0013][B.l]Dai^Rbj+Tbj+i
[0014]且Dbj 彡 Tai,和
[0015][C.1jDbj^Tai,
[0016]其中D、T和R是執(zhí)行需求、時(shí)間余裕和保留時(shí)間,它們以重復(fù)序列標(biāo)識(shí)符以及序列中的幀編號(hào)進(jìn)行索引;
[0017].在將幀F(xiàn)a1和幀F(xiàn)bj交換的情況下重復(fù)該條件評估;
[0018].在三個(gè)條件[A.1 ]、[ B.1 ]和[C.1 ]針對任一配對(i,j)都滿足的情況下授權(quán)任務(wù)的執(zhí)行。
[0019]該驗(yàn)證步驟可以包括以下額外步驟:
[0020].如果條件[A.1]為假,則評估以下條件:
[0021 ] [A.2]Dai 彡 Tbj+i+Rbj.1+Tbj+2
[0022]且Dai+Dbj+i 彡 Tai+Tbj+i
[0023].如果條件[B.1]為假,則評估以下條件:
[0024][B.2]Dai 彡 Tbj+i+Rbj.1+Tbj+2
[0025]且Dbj+Dai+Dbj+i 彡 Tai+Tbj+i
[0026].如果條件[C.1]為假,則評估以下條件:
[0027 ] [ C.2 ] Db j 彡 Tai+min [ Tb j-Dai,Rai,Ra1-1 ]
[0028].如果條件[A.1]或[A.2]與[B.1]或[B.2]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。
[0029]確定幀的持續(xù)時(shí)間的時(shí)基可以是可變的,使得時(shí)間余裕T和保留時(shí)間R針對幀F(xiàn)a通過因子I至za發(fā)生變化并且針對幀F(xiàn)b通過因子I至zb發(fā)生變化。該驗(yàn)證步驟隨后可以進(jìn)一步包括步驟:
[0030].如果條件[A.1]為假,則評估以下條件:
[0031][A.2]Dai 彡 Tbj+i+Rbj.1+Tbj+2
[0032]且min[ql(zb.(Tbj+Rbj) + (zb-l)Dbj),Dai]+Dbj+i^iTai
[0033]其中C1I = (Da1-TbjtI)Z(TbfRbj);
[0034].如果條件[B.1]為假,則評估以下條件:
[0035][B.2]Dai 彡 Tbj+i+Rbj.1+Tbj+2
[0036]且Dbj+min[ql(zb.Tbj+(zb_l)Dbj)+zb.Rbj,Dai]+Dbj+i^iTai
[0037]其中ql = (Da1-Rbj-Tbj+i)/Tbj;
[0038].如果條件[C.1]為假,則評估以下條件:
[0039 ] [ C.2 ] Db j 彡 Tai+min [ Tb j-Dai,Rai,Ra1-1 ]
[0040].如果條件[A.1]或[A.2]與[B.1]或[B.2]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。
[0041 ] 該驗(yàn)證步驟可以包括以下步驟:
[0042].如果條件[B.1]為假,則在條件[B.2]之前評估以下條件:
[0043][B.l.l]Dai^Tbj+Rbj+Tbj+i
[0044]且Dbj-1 彡 Tl+min[Tbj-1+Dbj-1+Rbj-1-Tl-Da1-1,Ra1-2]
[0045]其中ql= (Da1-Rbj_Tbj+i)/Tbj and Tl = Ta1-1-(1-ql)Tbj+Ra1-1
[0046].如果條件[A.1]或[A.2]與[B.1]或[B.1.1]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。
【附圖說明】
[0047]其它優(yōu)勢和特征將由于以下對本發(fā)明的特定實(shí)施例的描述而變得更加顯而易見,上述實(shí)施例僅是出于示例性的目的被提供并且在附圖中被加以表示,其中:
[0048]圖1示出了用于針對任務(wù)組成定序計(jì)劃的幀的重復(fù)序列的示例;
[0049 ]圖2示出了重復(fù)序列中的幀的結(jié)構(gòu)以及在幀中開始操作的不同概率;
[0050]圖3A至3C圖示了對兩個(gè)幀的重復(fù)序列進(jìn)行分時(shí)共享的不同概率,其中圖3C圖示了錯(cuò)誤條件;
[0051]圖4A至4C根據(jù)用于建立兩個(gè)序列的組成的驗(yàn)證標(biāo)準(zhǔn)的第一假設(shè)圖示了兩個(gè)序列的分時(shí)共享情形;
[0052]圖5A和5B根據(jù)用于建立兩個(gè)序列的組成的驗(yàn)證標(biāo)準(zhǔn)的第二假設(shè)圖示了兩個(gè)序列的分時(shí)共享情形;
[0053]圖6根據(jù)用于建立兩個(gè)序列的組成的驗(yàn)證標(biāo)準(zhǔn)的第三假設(shè)圖示了兩個(gè)序列的分時(shí)共孚情形;
[0054]圖7圖示了在圖5A的情況下用于建立另一有效性條件的一系列幀的示例;和
[0055]圖8根據(jù)被允許建立可替換的有效性條件的第三假設(shè)示出了兩個(gè)序列另外的執(zhí)行情形。
【具體實(shí)施方式】
[0056]實(shí)時(shí)任務(wù)可以被認(rèn)為是要逐個(gè)執(zhí)行的基本處理或操作的序列,其中每個(gè)操作依據(jù)與該任務(wù)相關(guān)聯(lián)的時(shí)基具有截止期限。在關(guān)鍵實(shí)時(shí)系統(tǒng)中,截止期限是強(qiáng)制的,即超過其截止期限的操作例如將會(huì)導(dǎo)致錯(cuò)誤條件和系統(tǒng)故障。以下所描述的技術(shù)能夠應(yīng)用于這樣的系統(tǒng)以提高性能水平,其中多個(gè)任務(wù)即使具有非相關(guān)的時(shí)基也可以在該系統(tǒng)上以分時(shí)共享的方式執(zhí)行。
[0057]圖1圖示了將任務(wù)分解為幀的重復(fù)序列RSF,其中每個(gè)幀被指定給該任務(wù)的一項(xiàng)順序操作。該任務(wù)通過以循環(huán)方式執(zhí)行重復(fù)序列RSF而被實(shí)施。
[0058]圖2示出了幀F(xiàn)的時(shí)間結(jié)構(gòu)。該幀的起始是操作可以開始的日期。該幀定義了操作應(yīng)當(dāng)完成的截止期限E。該操作被假設(shè)為是原子的,即該操作無法被掛起以便執(zhí)行另一項(xiàng)操作。截止期限E可以通過可選的保留時(shí)隙R而處于幀的結(jié)尾之前,上述保留時(shí)隙R可以為零。時(shí)間間隔D是與該幀相關(guān)聯(lián)的操作的執(zhí)行需求。執(zhí)行需求D例如對應(yīng)于執(zhí)行該操作所需的處理器時(shí)鐘周期的數(shù)量一一其因此可以根據(jù)目標(biāo)系統(tǒng)的處理器的特性而被表達(dá)為固定時(shí)間。間隔T對應(yīng)于幀的起始和截止期限E之間的用于執(zhí)行該操作的時(shí)間余裕。
[0059]因此,如圖2所示,操作可以在幀的起始(其中間隔T位于操作結(jié)束和截止期限之間)與該幀的起始之后的時(shí)間T(其中該操作恰好在截止期限E結(jié)束)之間的任何地方開始。針對中間情形,qT表示操作結(jié)束和截止期限之間的間隔,其中OSqSl,并且(l-q)T表示處于幀開始和操作開始之間的補(bǔ)充間隔。
[0060]保留間隔R的和例如是編程人員為系統(tǒng)所分配的進(jìn)行諸如輸入/生成之類的非實(shí)時(shí)操作的時(shí)間。
[0061]應(yīng)當(dāng)在關(guān)鍵實(shí)時(shí)系統(tǒng)上以分時(shí)共享的方式執(zhí)行的兩個(gè)任務(wù)因此被細(xì)分為幀的重復(fù)序列。對于在要在沒有干擾的情況下能夠執(zhí)行的任務(wù)而言,即遵從操作的原子性,尋求對該序列進(jìn)行組合而使得一個(gè)序列的每項(xiàng)操作能夠在另一序列的兩項(xiàng)連續(xù)操作之間的任意時(shí)間執(zhí)行,同時(shí)遵守這兩個(gè)序列中的幀的約束,也就是截止期限和幀起始。
[0062]圖3A-3C示出了在展開兩個(gè)序列RSFa和RSFb時(shí)可能遇到的各種情形。出于簡明的目的而假設(shè)保留間隔R為零。
[0063]在圖3A中,作為示例,序列RSFa包括相應(yīng)參數(shù)(Dai = 3,Tai = 6)、(Da2 = 4,Ta2 = I)、(Da3 = I1Ta3=I)的三個(gè)幀F(xiàn)a1SFa3,其中時(shí)間數(shù)值以規(guī)格化單位進(jìn)行表達(dá)。序列RSFb在幀F(xiàn)ai開始之后的3個(gè)單位開始,并且其包括相應(yīng)參數(shù)(Dbi = 4,Tbi = 5)和(Db2 = 3,Tb2 = 4)的兩個(gè)幀 FbjPFb2t3
[0064]操作Da1在相對應(yīng)的幀開始之后的一個(gè)單位開始。在操作Da1結(jié)束時(shí),操作0&2還無法開始,但是操作0匕可以開始。在操作Db1結(jié)束時(shí),還沒有操作準(zhǔn)備好執(zhí)行。等待幀?&2的開始(這里為截止期限Ea1)以便開始操作Da2。在操作Da2結(jié)束時(shí),操作Db2能夠執(zhí)行,但是其并不應(yīng)當(dāng)開始。實(shí)際上,如果操作Db2被立即啟動(dòng),則其將剛好在截止期限Ea3結(jié)束,由此操作Da3無法在該截止期限之前運(yùn)行。在這種情況下,等待幀F(xiàn)a3的開始以啟動(dòng)操作Da3。最終,操作0132能夠在操作Da3結(jié)束時(shí)開始。
[0065]在圖3B中,除了操作Da1在幀開始之后的三個(gè)單位開始之外,保留相同的參數(shù)。操作DbjPDa2關(guān)于圖3A延遲兩個(gè)單位,同時(shí)遵守相對應(yīng)幀的約束。操作Da2剛好在其截止期限
Ea2結(jié)束。
[0066]在圖3C中,除了操作Da1現(xiàn)在在幀開始之后的四個(gè)單位開始之外,保留相同的參數(shù)。操作DbjPDa2關(guān)于圖3A延遲三個(gè)單位。操作Db1仍然能夠執(zhí)行,同時(shí)遵守其截止期限Eb1,但是操作Da#』違反了其截止期限Ea2。
[0067]這里所提到的技術(shù)所共用的第一步驟包括針對要以分時(shí)共享方式執(zhí)行的兩個(gè)任務(wù)組合兩個(gè)重復(fù)序列RSFa和RSFb,它們無論序列開始之間的延遲如何都能夠在圖3A或3B的條件下進(jìn)行拆解。該組合是靜態(tài)的,也就是說由編程人員離線實(shí)現(xiàn)。
[0068]第二步驟包括驗(yàn)證任意兩個(gè)序列相兼容,即它們能夠被拆解而使得每個(gè)操作都能夠在其約束內(nèi)執(zhí)行,諸如在圖3A和圖3B中。
[0069]該兼容性驗(yàn)證可以以為編程人員所設(shè)計(jì)以便通過反復(fù)實(shí)驗(yàn)對序列進(jìn)行組合的開發(fā)工具來實(shí)施。在加載以便執(zhí)行由兩個(gè)重復(fù)序列所定義的定序計(jì)劃時(shí),其優(yōu)選地還在該實(shí)時(shí)系統(tǒng)自身內(nèi)執(zhí)行。該系統(tǒng)因此可以被配置為在序列被檢測為不兼容的情況下拒絕操作。
[0070]第三步驟包括在實(shí)時(shí)系統(tǒng)中對兩個(gè)序列的操作進(jìn)行調(diào)度。如圖所示,將第一序列的操作與第二序列的操作對調(diào)或者在操作準(zhǔn)備執(zhí)行時(shí)使得其開始并不足以實(shí)現(xiàn)正確的操作。可以根據(jù)以下在每個(gè)關(guān)鍵日期進(jìn)行評估的情形來實(shí)現(xiàn)調(diào)度。關(guān)鍵日期可以被定義為兩個(gè)序列中的幀的開始、截止期限以及操作結(jié)束。當(dāng)保留時(shí)隙R(圖2)為零時(shí),如在所給出的示例中,截止期限與幀的開始相一致。針對與第一序列相關(guān)聯(lián)的給定關(guān)鍵日期,術(shù)語“同時(shí)的幀”表示第二序列中的當(dāng)前幀。
[0071]I)沒有操作能夠開始。這在操作已經(jīng)處于進(jìn)行之中(如圖3A的截止期限Ebl)的時(shí)候或者在同時(shí)的幀的操作與其截止期限之間運(yùn)行的操作一一如針對圖3A的操作Dbl—一結(jié)束時(shí)發(fā)生。在這種情況下,等待下一個(gè)關(guān)鍵日期。
[0072]2)兩個(gè)操作能夠開始。這通常在操作在同時(shí)的幀中進(jìn)行等待的同時(shí)開始幀的時(shí)候發(fā)生,如圖3A和3B中的截止期限Ea2的情形。隨后執(zhí)行具有最短截止期限的操作(圖3A和3B中的Da3)。該情形還在兩個(gè)同時(shí)的幀同時(shí)開始時(shí)發(fā)生。
[0073]3)單個(gè)操作能夠開始。這通常在操作(Dal)結(jié)束時(shí)或者在一個(gè)幀在同時(shí)的幀的操作已經(jīng)結(jié)束(Eal,圖3A)時(shí)開始的情況下發(fā)生。操作僅在其執(zhí)行需求小于或等于到下一個(gè)同時(shí)的幀開始之前的剩余時(shí)間加上與該同時(shí)的幀相關(guān)聯(lián)的時(shí)間余裕的情況下才被執(zhí)行。例如,在圖3A中,操作Da2準(zhǔn)備在截止期限Eal開始,到幀F(xiàn)b2開始之前還有3個(gè)單位并且Tb2 =4 ο操作Da2由于Da2 = 4〈3+4而被開始。
[0074]否則,就等待下一個(gè)關(guān)鍵日期以對情形進(jìn)行重新評估。例如,在圖3A中,操作Db2在操作Da2結(jié)束時(shí)準(zhǔn)備執(zhí)行。然而,到幀F(xiàn)a3開始之前還剩一個(gè)單位并且Ta3 = l,因此Db2 = 3>l
+ 1 O
[0075]現(xiàn)在將定義在實(shí)時(shí)系統(tǒng)的定序計(jì)劃中所使用的任意兩個(gè)重復(fù)序列RSFa和RSFb之間的兼容性標(biāo)準(zhǔn)。
[0076]窮舉的兼容性檢查將涉及到檢查操作在它們的幀中的位置與序列相對于彼此的所有可能位置的所有可能組合,其中粒度為一個(gè)時(shí)鐘周期,從而評估同時(shí)的操作是否能夠根據(jù)所施加的約束而被執(zhí)行。
[0077]這樣的窮舉驗(yàn)證將難以在合理時(shí)間內(nèi)實(shí)現(xiàn)。尋求能夠在加載伴隨有用于任務(wù)的可執(zhí)行代碼的定序計(jì)劃時(shí)在實(shí)時(shí)系統(tǒng)上在線評估的簡化標(biāo)準(zhǔn)。出于該目的,關(guān)于序列之一中的每個(gè)幀相對于另一序列中的每個(gè)幀的定位考慮三種一般假設(shè)。對于每一個(gè)假設(shè),證明了給定幀F(xiàn)ai的操作能夠在與幀F(xiàn)ai交疊的同時(shí)的幀F(xiàn)bj,Fbj+1...的所剩余的可用時(shí)隙內(nèi)執(zhí)行。兩個(gè)幀F(xiàn)adPFbj在該驗(yàn)證針對三種假設(shè)中的每一種都滿足時(shí)被認(rèn)為是兼容的。
[0078].假設(shè)(A):給定幀F(xiàn)a1在第一個(gè)同時(shí)的幀F(xiàn)bj的操作Dbj已經(jīng)完成執(zhí)行時(shí)開始。
[0079].假設(shè)(B):第一個(gè)同時(shí)幀的操作正在進(jìn)行。
[0080].假設(shè)(C):同時(shí)的幀的操作還沒有開始。
[0081]針對每種假設(shè),尋求獨(dú)立于幀的相對位置的標(biāo)準(zhǔn)。出于該目的,通常,被用來找出執(zhí)行操作的時(shí)隙的未知時(shí)間間隔是被低估的,并且被用來檢查與截止期限的符合性的位置時(shí)間間隔是被高估的。
[0082]圖4A至4C圖示了可以被用來基于假設(shè)(A)開發(fā)兼容性標(biāo)準(zhǔn)的示例性的幀的示例。給定幀F(xiàn)ai在同時(shí)的幀F(xiàn)b j的操作Db j已經(jīng)完成時(shí)在該同時(shí)的幀的期間開始。幀F(xiàn)ai與下一個(gè)同時(shí)的幀F(xiàn)bp1交疊。關(guān)于幀F(xiàn)a1的開始所有所知的是其位于操作Dbj結(jié)束之后的間隔qTbj之中,其中O彡q彡I。
[0083]在圖4A中,幀在Fai在幀F(xiàn)bj+12前結(jié)束。操作Dai的能夠從操作Dbj的結(jié)束而在間隔qTbj+Tbj+i中啟動(dòng)。但是q是未知且任意的,所以最差情形被認(rèn)為是q = 0情形,由此操作Dai在幀F(xiàn)bj+1開始時(shí)開始。因此,操作Dajg夠在以下情況下執(zhí)行:
[0084]Dai<Tbj+i [A.1]
[0085]在圖4B中,操作Dai并不滿足要求A.1。因此嘗試將操作Dai跨幀F(xiàn)bj+4PFbj+2來執(zhí)行,這意味著幀F(xiàn)ai與三個(gè)幀F(xiàn)bj至Fb j+2交疊。這隱含表不同時(shí)滿足了用于確保間隔Tbj+i與Tbj+2之和是足夠的條件以及用來確保截止期限Eai被滿足的條件:
[0086]Dai 彡 Tbj+i+Tbj+2
[0087]并且
[0088]qTbj+Dbj+i+Dai^Dai+Tai,因此qTbj+Dbj+i彡Tai
[0089]遵守該截止期限的最差情形為q=l,其增加了不等式的左側(cè)成員。因此,截止期限Eai在以下情況下的所有情形都被滿足:
[0090]Tbj+Dbj+i 彡 Tai
[0091]然而,在相同背景下的最差情形中考慮使用相同變量的兩個(gè)極值是不現(xiàn)實(shí)的。實(shí)際上,變量q的某個(gè)數(shù)值范圍能夠在考慮實(shí)際系統(tǒng)在圖4A的情形中的表現(xiàn)時(shí)被排除。
[0092]圖4C示出了實(shí)際系統(tǒng)在圖4A的情形中的表現(xiàn)。一旦操作Dbj結(jié)束,只要滿足以下條件,具有幀參數(shù)的在線知識(shí)的系統(tǒng)就在幀F(xiàn)ai開始時(shí)啟動(dòng)操作Dai:
[0093]Dai彡qTbj+Tbj+i
[0094]也就是說,如果滿足調(diào)度方法的條件3)。
[0095]令ql作為用來在以上不等式中實(shí)現(xiàn)相等的極限數(shù)值:
[0096]Dai = qlTbj+Tbj+i,因此ql = (Dai_Tbj+i)/Tbj
[0097]如果q多ql,則顯然實(shí)際系統(tǒng)的執(zhí)行根據(jù)圖4C進(jìn)行并且圖4B的情形要被排除。針對圖4B而目,最差情形因此是q = ql,由此
[0098]qlTbj+Dbj+KTai,因此通過將ql替換為其數(shù)值,
[0099]Da1-Tbj+i+Dbj+i^iTai,or Dai+Dbj+i^;Tai+Tbj+i
[0100]用來計(jì)算數(shù)值ql的表達(dá)式并不局限于I。如果ql超過I,則其不具有實(shí)際意義。數(shù)值ql因此以I作為上限。
[0101 ]源自于圖4B的情形的條件因此為:
[0102]Dai 彡 Tbj+i+Tbj+2
[0103]且[A.2]
[0104]qlTbj+Dbj+i 彡 Tai
[0105]條件A.1能夠在幀F(xiàn)ai與至少兩個(gè)連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證。條件A.2能夠在幀F(xiàn)ai與至少三個(gè)連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證。以類似方式,可以發(fā)現(xiàn)能夠在幀F(xiàn)a1與至少四個(gè)或更多連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證的條件A.3等,但是滿足這樣的條件的可能性快速地下降。條件A.1和A.2(以及在能夠應(yīng)用的情況下的A.3等)是可替換的,也就是說,這些條件中的任何一個(gè)被滿足就足以跳轉(zhuǎn)至其它假設(shè)的驗(yàn)證。
[0106]圖5A和5B圖示了可以被用來基于假設(shè)(B)開發(fā)兼容性標(biāo)準(zhǔn)的示例性的幀的示例。幀F(xiàn)a1在同時(shí)的幀F(xiàn)bj的期間開始,同時(shí)該幀的同時(shí)操作Dbj正在進(jìn)行。在最差情形中,如所示出的,操作Dbj剛剛開始。該情形與圖4A和4B相類似,區(qū)別在于為了驗(yàn)證與截止期限Eai的相符性而考慮了 Dbj的持續(xù)時(shí)間。
[0107]根據(jù)圖5A:
[0108]Dai<Tbj+1,并且為了遵守截止期限 Eai,Dbj+Dai 彡 Dai+Tai,因此 DbjSTai。
[0109]源自于圖4B情形的條件因此為:
[0110]Dai^Tbj+i
[0111]且[B.1]
[0112]Dbj^Tai
[0113]根據(jù)圖5B,遵循與圖4B中相同的理由:
[0114]Dai 彡 Tbj+i+Tbj+2
[0115]且[B.2]
[0116]Dbj+qlTbj+Dbj+i 彡 Tai
[0117]如同條件A.1,條件B.1能夠在幀F(xiàn)ai與至少兩個(gè)連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證。條件B.2能夠在幀F(xiàn)ai與至少三個(gè)連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證。以類似方式,可以發(fā)現(xiàn)能夠在幀F(xiàn)a1與至少四個(gè)或更多連續(xù)的幀F(xiàn)b交疊的情況下得到驗(yàn)證的條件B.3等,但是滿足這樣的條件的可能性快速地下降。條件B.1和B.2(以及在能夠應(yīng)用的情況下的B.3等)是可替換的,也就是說,這些條件中的任何一個(gè)被滿足就足以跳轉(zhuǎn)至其它假設(shè)的驗(yàn)證。
[0118]圖6圖示了能夠被用來基于假設(shè)(C)開發(fā)兼容性標(biāo)準(zhǔn)的示例性的幀的示例。在假設(shè)(C)的背景下,假設(shè)操作Dbj還沒有被執(zhí)行。如果幀截止期限在幀F(xiàn)bj的截止期限之后到達(dá),則遇到與圖5A和5B相同的情形,其中操作Db測剛開始。因此,在假設(shè)(C)下,僅對幀F(xiàn)a^截止期限在幀F(xiàn)bj的截止期限之前發(fā)生的情形進(jìn)行分析。
[0119]操作DadPDbj都準(zhǔn)備在幀F(xiàn)a1開始時(shí)執(zhí)行??梢约僭O(shè)的是,操作Dbj并未在其幀的開始時(shí)開始,原因在于調(diào)度條件3)還沒有被滿足,例如如所示出的,在操作Da1^1在幀?&1開始時(shí)在其截止期限結(jié)束。在截止期限Eai最短的情況下,操作Dai被首先啟動(dòng)。操作Dbj在操作Dai結(jié)束時(shí)啟動(dòng)。在假設(shè)(C)的限制之內(nèi)的最差情形中,幀F(xiàn)ai和Fbj的截止期限一致,這意味著:
[0120]DbjSTai [C.l]
[0121]雖然所提供的調(diào)度處理將不會(huì)以這種方式進(jìn)行,但是在假設(shè)操作Dbj在幀?&1開始時(shí)開始的情況下獲得該相同的不等式。為了操作0&1在其截止期限之前結(jié)束,對不等式Dbj+Dai彡DaATai進(jìn)行驗(yàn)證,即如以上相同的不等式。
[0122]每個(gè)幀F(xiàn)a1因此與每個(gè)幀F(xiàn)bj進(jìn)行比較,這確保滿足了幀F(xiàn)a1的截止期限,然而這并未證實(shí)滿足了幀F(xiàn)bj的截止期限。這形成了第一驗(yàn)證通過(verificat1n pass)。隨后通過將每個(gè)幀F(xiàn)bj與每個(gè)幀F(xiàn)a^行比較而重復(fù)上述操作以完成該驗(yàn)證的第二通過,由此確保滿足幀F(xiàn)bj的截止期限。
[0123]分別具有Na和Nb個(gè)幀的兩個(gè)重復(fù)序列RSFa和RSFb的兼容性的驗(yàn)證可以通過以下偽代碼進(jìn)行概括。在該偽代碼中,可替換條件以不等式左側(cè)的表達(dá)式min(x,y)和不等式右側(cè)的max(x,y)進(jìn)行簡單表示,而必要條件則以不等式右側(cè)的表達(dá)式min(x,y)和不等式左側(cè)的max(x,y)進(jìn)行簡單表示。如以上所提到的,條件A.3和8.3已經(jīng)被提供以反映出幀?&1與四個(gè)幀F(xiàn)bj至Fbj+3相交疊的情形。索引i和j上的操作以該索引的最大值(針對i為Na,而針對j為Nb)為模來執(zhí)行,因?yàn)閹蛄惺悄軌驘o限重復(fù)的。
[0124]針對O和Na-1之間的每個(gè)i,do:
[0125]針對O和Nb-1之間的每個(gè)j,do:
[0126][A.1]
[0127]if Dai<Tbj+ithen在[Β.I]繼續(xù)
[0128][A.2]
[0129]ql: = (Dai_Tbj+i)/Tbj
[0130]if ql>l或Tbj = Othen ql: = I
[0131]if Dai彡Tbj+i+Tbj+2
[0132]且qlTbj+Dbj+i 彡 Tai
[0133]then在[B.1]繼續(xù)
[0134][A.3]
[0135]if Dai彡Tbj+2+Tbj+3
[0136]且qlTbj+Dbj+i+Dbj+2+min[Tbj+i,Dai] <Tai
[0137]then在[B.1]繼續(xù)
[0138]以錯(cuò)誤代碼退出該循環(huán)
[0139][B.1]
[0140]if Dai^Tbj+i
[0141]且Dbj 彡 Tai
[0142]then 在[D]繼續(xù)
[0143][B.1.1]
[0144]ql: = (Dai_Tbj+i)/Tbj
[0145]if ql>l或Tbj = Othen ql: = I且在[Β.2]繼續(xù)
[0146]Tl: =Ta1-1-(1-ql)Tbj
[0147]if Dbj-1彡Tl
[0148]then在[C.1]繼續(xù)
[0149][B.2]
[0150]if Dai彡Tbj+i+Tbj+2
[0151]且Dbj+qlTbj+Dbj+i 彡 Tai
[0152]then在[C.1]繼續(xù)
[0153][B.3]
[0154]if Dai彡Tbj+2+Tbj+3
[0155]且Dbj+qlTbj+Dbj+i+min[Tbj+i,Dai]+Dbj+2<Tai
[0156]then在[C.1]繼續(xù)
[0157]以錯(cuò)誤代碼退出該循環(huán)
[0158][C.1]
[0159]if Dbj^Tai
[0160]then 在[D]繼續(xù)
[0161]以錯(cuò)誤代碼退出該循環(huán)
[0162][D]next j
[0163]next i
[0164]為了完成驗(yàn)證,如之前所指出的,可以將幀F(xiàn)a和Fb交換而重復(fù)該循環(huán)。
[0165]在該循環(huán)中,根據(jù)關(guān)于上文已經(jīng)描述過的替換形式,在繼續(xù)進(jìn)行條件B.2的評估之前,對條件B.1.1進(jìn)行評估。
[0166]圖7示出了示例性的幀系列,其圖示了條件B.1.1的建立。幀F(xiàn)ai和Fbj處于與圖4A相同的條件下,但是不同于在幀F(xiàn)bj+1開始時(shí)開始操作Da1,假設(shè)其可以在操作Dbj之后立即開始,并且在q = ql的情況下允許這種處理的一般條件在之前的幀F(xiàn)a1^1和Fb^中進(jìn)行尋找。由于條件B.1基于幀F(xiàn)ai和兩個(gè)幀(Fbj和Fbj+i)交疊的假設(shè),所以條件B.1.1對應(yīng)于與幀F(xiàn)ai和三個(gè)或更多的幀交疊的情形相比更容易出現(xiàn)的情形。
[0167]如之前所指出的,該幀可以包括保留時(shí)間R,其可以被系統(tǒng)用來執(zhí)行非實(shí)時(shí)任務(wù)。這樣的保留時(shí)間可以被用來執(zhí)行實(shí)時(shí)操作。其添加至一個(gè)序列的時(shí)間余裕T從而有助于另一序列的操作D的執(zhí)行,但是其可以使得滿足截止期限的條件更為嚴(yán)格。
[0168]非零的保留時(shí)間R尤其可以放松條件C.1。
[0169]圖8示出了在條件C.1并未被滿足時(shí)——也就是說如果DbPTai——建立有所放松的約束的示例性的幀系列。在假設(shè)C下,假設(shè)操作Dbj在幀F(xiàn)a1開始時(shí)還沒有開始。具有最短截止期限的操作DaMlj好在幀F(xiàn)a1開始時(shí)開始。幀F(xiàn)b廟幀F(xiàn)a^前開始,假設(shè)是在幀F(xiàn)a1^1的間隔Ra1-1的期間開始。幀F(xiàn)b j的開始與幀F(xiàn)ai的開始之間的間隔被表不為kRai—ι,其中(X I。
[0170]如果操作Dbj在其幀F(xiàn)bj開始時(shí)并未被調(diào)度,則意味著:
[0171]Dbj>kRa1-ι+Tai
[ΟΙ72] k的極限數(shù)值被表示為kl,從而Dbj = klRai—ι+Tai,因此kl = (Dbj-Tai)/Rai—I。如果k>kl,則顯然操作Dbj能夠在幀?&1開始之前被調(diào)度一一這種情況并不應(yīng)當(dāng)被考慮,因?yàn)槠洳⑽催m合假設(shè)C。僅考慮處于O和kl之間的k的數(shù)值。
[0173]為了操作Dai能夠執(zhí)行,應(yīng)當(dāng)滿足條件DaSTbrkRa1-1。最差情形是k= kl,由此:
[0174]Dai彡Tbj-klRai—!,即利用其數(shù)值替代kl:
[0175]Dai彡Tbj-(Dbj-Tai),或者
[0176]Dbj彡Tai+Tbj-Dai
[0177]系數(shù)kl最多等于I,其被表達(dá)為:
[0178]013」-丁&1彡1^—1,或者
[0179]Dbj彡Tai+Rai—I
[0180]最終,為了不對操作Dai+1的執(zhí)行加以限制,操作Dbj并不應(yīng)當(dāng)與幀F(xiàn)a1+1交疊。這在以下情況下被滿足:
[0181]Dbj^Tai+Rai
[0182]這導(dǎo)致以下作為條件C.1的替代的條件:
[0183]Dbj^Tai+Tbj-Dai
[0184]且
[0185]Dbj 彡 Tai+Ra1-1 [C.2]
[0186]且
[0187]Dbj彡Tai+Rai
[0188]以下偽代碼考慮了保留時(shí)間R。
[0189]針對O和Na-1之間的每個(gè)i,do:
[0190]針對O和Nb-1之間的每個(gè)j,do:
[0191][A.1]
[0192]if Dai<Tbj+ithen繼續(xù)[Β.I]
[0193][A.2]
[0194]ql: = (Da1-Tbj+i)/(Tbj+Rbj)
[0195]if ql>l或Tbj+Rbj = 0于是ql: = I
[0196]if Dai彡Tbj+i+Rbj+i+Tbj+2
[0197]且ql(Tbj+Rbj )+Dbj+i<Tai
[0198]then在[B.1]繼續(xù)
[0199][A.3]
[0200]if Dai^Tbj+2+Rbj+2+Tbj+3
[0201]且Dbj+i+ql( Tbj+Rbj)
[0202]+Dbj+2+min [ Tb j+i+Rbj+i ,DaiJ^iTai
[0203]then在[B.1]繼續(xù)
[0204]以錯(cuò)誤代碼退出該循環(huán)
[0205][B.1]
[0206]if Dai彡Rbj+Tbj+i
[0207]且Db」彡 Tai
[0208]then在[C.2]繼續(xù)
[0209]ql: = (Da1-Rbj-Tbj+i)/Tbj
[0210]if ql>l或Tbj = Othen ql: = I且在[Β.2]繼續(xù)
[0211][B.1.1]
[0212]Tl: =Ta1-1-(l_ql)Tbj+Ra1-1
[0213]if Dbj-1彡Tl+min[Tbj-1+Dbj-1+Rbj-1-Tl-Da1-1,Ra1-2]
[0214]then在[C.1]繼續(xù)
[0215][B.1.2]
[0216]if Dbj-1+Rbj-1彡Tl
[0217]且Da1-1 彡 Tbj-2+Rbj-2+Tbj-1
[0218]且Tbj-2+Dbj-2+Rbj-2+Tbj-1+Dbj-ι+Rbj-1<Ra1-2+Tl+Da1-1
[0219]then在[C.1]繼續(xù)
[0220][B.2]
[0221]if Dai彡Tbj+i+Rbj+i+Tbj+2
[0222]且Dbj+qlTbj+Rbj+Dbj+i 彡 Tai
[0223]then在[C.1]繼續(xù)
[0224][B.3]
[0225]if Dai^Tbj+2+Rbj+2+Tbj+3
[0226]且Dbj+qlTbj+Rbj
[0227]+Dbj+i+min[Tbj+i+Rbj+i ,Dai]
[0228]+Dbj+2 彡 Tai
[0229]then在[C.1]繼續(xù)
[0230]以錯(cuò)誤代碼退出該循環(huán)
[0231][C.1]
[0232]if Dbj^Tai
[0233]then在[D]繼續(xù)
[0234][C.2]
[0235]if Dbj^;Tai+min[Tbj-Dai,Rai,Ra1-1]
[0236]then 在[D]繼續(xù)
[0237]以錯(cuò)誤代碼退出該循環(huán)
[0238][D]next j
[0239]next i
[0240]出現(xiàn)在該偽代碼中的條件B.1.2在將搜索擴(kuò)展至Fa1^2和Fb^的情況下使用與條件B.1.1相同的方法進(jìn)行確定。
[0241]截至目前,假設(shè)作為兩個(gè)任務(wù)的時(shí)鐘的時(shí)基是等步的,也就是說一個(gè)序列的間隔的持續(xù)時(shí)間相對于另一序列的間隔的持續(xù)時(shí)間是不變的。實(shí)際上,如同被索引至以可變速度進(jìn)行移動(dòng)的部件的位置的任務(wù),可能有必要對使用非關(guān)聯(lián)的時(shí)基的兩個(gè)任務(wù)進(jìn)行組合。
[0242]為了應(yīng)對這種情形,針對每個(gè)重復(fù)序列引入可變性系數(shù)z彡I,對于序列RSFa和RSFb而言分別是za和zb。系數(shù)za和zb是固定的并且表示兩個(gè)序列中的時(shí)間間隔T和R的最大減速(slowdown)。假設(shè)在之前關(guān)系中所使用的注釋表示間隔的最小數(shù)值,則數(shù)值T和R中的每一個(gè)因此可以假設(shè)兩個(gè)數(shù)值,T或zT以及R或ZR。執(zhí)行需要D保持恒定,因?yàn)樗鼈儍H取決于系統(tǒng)時(shí)鐘。
[0243]在之前的關(guān)系中,在使用間隔找出用于執(zhí)行操作的時(shí)隙的情況下,其被低估的數(shù)值T或R得以被保持。當(dāng)該間隔被用來檢查與截止期限的相符性時(shí),則使用其被高估的數(shù)值zT或ZR。因此得到以下偽代碼。
[0244]針對O和Na-1之間的每個(gè)i,do:
[0245]針對O和Nb-1之間的每個(gè)j,do:
[0246][A.1]
[0247]if Dai<Tbj+ithen在[B.1]繼續(xù)
[0248][A.2]
[0249]ql: = (Da1-Tbj+i)/(Tbj+Rbj)
[0250]if ql>l或Tbj+Rbj = Othen ql: = I
[0251]if Dai彡Tbj+i+Rbj+i+Tbj+2
[0252]且min[ql(zb.(Tbj+Rbj) + (zb-1)Dbj),Dai]+Dbj+i^iTai
[0253]then在[B.1]繼續(xù)
[0254][A.3]
[0255]if Dai^Tbj+2+Rbj+2+Tbj+3
[0256]且Dbj+i+min[ql(zb.(Tbj+Rbj) + (zb_l)Dbj),Dai]
[0257]+Dbj+2+min[zb.(Tbj+i+Rbj+i) + (zb-1 )Dbj+i ,DaiJ^iTai
[0258]then在[B.1]繼續(xù)
[0259 ]以錯(cuò)誤代碼退出該循環(huán)
[0260][B.1]
[0261]if Dai彡Rbj+Tbj+i
[0262]且Db」彡 Tai
[0263]then 在[C.2]繼續(xù)
[0264][B.1.1]
[0265]ql: = (Da1-Rbj-Tbj+i)/Tbj
[0266]if ql>l或Tbj = Othen ql: = I且在[Β.2]繼續(xù)
[0267]Tl: =Ta1-1-(l_ql)Tbj+Ra1-1
[0268]if Dbj-1彡Tl+min[Tbj-1+Dbj-1+Rbj-1-Tl-Da1-1,Ra1-2]
[0269]then 在[C.1]繼續(xù)
[0270][B.1.2]
[0271]if Dbj-ι+zb.Rbj-1<Tl
[0272]且Da1-1 彡 Tbj-2+Rbj-2+Tbj-1
[0273]JHzb.(Tbj-2+Dbj-2+Rbj-2+Tbj-1+Dbj-ι+Rbj-lXRa1-2+T1+
[0274]Da1-1
[0275]then在[C.1]繼續(xù)
[0276][B.2]
[0277]if Dai彡Tbj+i+Rbj+i+Tbj+2
[0278]且Dbj+min[ql(zb.Tbj+(zb_l)Dbj)+zb.Rbj,Dai]
[0279]+Dbj+i^Tai
[0280]then在[C.1]繼續(xù)
[0281][B.3]
[0282]if Dai^Tbj+2+Rbj+2+Tbj+3
[0283]且Dbj+min[ql(zb.Tbj+(zb_l)Dbj)+zb.Rbj,Dai]
[0284]+Dbj+i+min[zb.(Tbj+i+Rbj+i) + (zb-l)Dbj+i,Dai]
[0285]+Dbj+2^;Tai
[0286]then在[C.1]繼續(xù)
[0287]以錯(cuò)誤代碼退出該循環(huán)
[0288][C.1]
[0289]if Dbj^Tai
[0290]then在[D]繼續(xù)
[0291][C.2]
[0292]if Db j ^ Tai+min [Tbj-DaijRai, Ra1-1]
[0293]then在[D]繼續(xù)
[0294]以錯(cuò)誤代碼退出該循環(huán)
[0295][D]next j
[0296]next i
[0297]在以上所描述的調(diào)度處理的情形3)中,所考慮的時(shí)間余裕是最小值,S卩T而不是zT。
[0298]已經(jīng)利用要以分時(shí)共享的方式執(zhí)行的兩個(gè)任務(wù)對以上所給出的原則進(jìn)行了描述,但是它們應(yīng)用于任意數(shù)量的任務(wù)。實(shí)際上,所描述的方法使得實(shí)際上可能針對兩個(gè)兼容的任務(wù)組成單個(gè)定序計(jì)劃。這樣獲得的定序計(jì)劃可以使用相同的技術(shù)與第三兼容任務(wù)的定序計(jì)劃再次組合,并以此類推。
【主權(quán)項(xiàng)】
1.一種用于以分時(shí)共享執(zhí)行兩個(gè)任務(wù)的方法,包括步驟: 以與任務(wù)相關(guān)聯(lián)的時(shí)基對連續(xù)幀的重復(fù)序列(RSF)中的每個(gè)任務(wù)進(jìn)行離線分解,其中每個(gè)幀(F)與具有執(zhí)行需求的原子操作相關(guān)聯(lián),并且定義了該操作可以開始的開始日期以及該操作必須結(jié)束的截止期限(E),由此每個(gè)幀定義了該操作可以在其中開始的時(shí)間余裕⑴; 針對第一個(gè)重復(fù)序列(RSFa)中的每個(gè)幀(Fai)驗(yàn)證相對應(yīng)的操作(Dai)能夠在第二重復(fù)序列(RSFb)的幀群組(FbhFb^1)的任意兩次連續(xù)操作之間執(zhí)行,同時(shí)遵守操作的開始日期和截止期限,所述第二重復(fù)序列(RSFb)的幀群組(FbhFb^1)與第一重復(fù)序列中的幀交疊;并且 如果該驗(yàn)證被滿足,則允許兩個(gè)任務(wù)執(zhí)行并且根據(jù)在每個(gè)關(guān)鍵日期所評估的以下情形對這兩個(gè)任務(wù)的操作進(jìn)行調(diào)度,其中關(guān)鍵日期在每個(gè)截止期限、每個(gè)開始日期以及每次操作結(jié)束時(shí)出現(xiàn):-如果兩個(gè)操作(Da3,Db2)能夠開始,則執(zhí)行具有較短截止日期的操作(Da3);以及-如果單個(gè)操作能夠開始,則僅在其執(zhí)行需求小于到另一序列中的下一個(gè)幀的開始日期之前的剩余時(shí)間加上與另一序列的所述下一個(gè)幀相關(guān)聯(lián)的時(shí)間余裕(T)的情況下才執(zhí)行它。2.根據(jù)權(quán)利要求1所述的方法,其中每個(gè)幀(F)進(jìn)一步包括位于該幀的截止期限(E)之后或者該幀的開始日期之前的保留時(shí)間間隔(R),其可以為零,其中任意一個(gè)重復(fù)序列的保留時(shí)間間隔可以被用來執(zhí)行另一重復(fù)序列的操作。3.根據(jù)權(quán)利要求2所述的方法,其中該驗(yàn)證步驟包括以下步驟: ?針對第一重復(fù)序列的每個(gè)幀F(xiàn)ai,評估第二重復(fù)序列的每個(gè)幀F(xiàn)bj的以下條件:[A.l]Dai^Tbj+i[B.l]Dai^Rbj+Tbj+i且 Dbj 彡 TaiJP [C.l]Dbj彡Tai 其中D、T和R是執(zhí)行需求、時(shí)間余裕和保留時(shí)間,它們以重復(fù)序列標(biāo)識(shí)符以及該序列中的幀編號(hào)進(jìn)行索引; ?在將幀F(xiàn)a1和幀F(xiàn)h交換的情況下重復(fù)該條件評估; ?在三個(gè)條件[A.1 ]、[ B.1 ]和[C.1 ]針對任一配對(i,j)都滿足的情況下授權(quán)任務(wù)的執(zhí)行。4.根據(jù)權(quán)利要求3所述的方法,其中該驗(yàn)證步驟包括以下步驟: ?如果條件[A.1]為假,則評估以下條件:[A.2]Dai^;Tbj+i+Rbj+i+Tbj+2目 Dai+Dbj+i ^?Tai+Tbj+i?如果條件[B.1]為假,則評估以下條件:[B.2]Dai^;Tbj+i+Rbj+i+Tbj+2目 Dbj+Dai+Dbj+i ^?Tai+Tbj+i?如果條件[C.1]為假,則評估以下條件: [C.2 ]Dbj^i Tai+min[ Tbj-Dai ,Rai ,Ra1-1 ] ?如果條件[A.1]或[A.2]與[B.1]或[B.2]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。5.根據(jù)權(quán)利要求3所述的方法,其中確定幀的持續(xù)時(shí)間的時(shí)基是可變的,使得時(shí)間余裕T和保留時(shí)間R針對幀F(xiàn)a通過因子I至za發(fā)生變化并且針對幀F(xiàn)b通過因子I至zb發(fā)生變化,該驗(yàn)證步驟進(jìn)一步包括步驟: ?如果條件[A.1]為假,則評估以下條件:[A.2]Dai^;Tbj+i+Rbj+i+Tbj+2且min[ql(zb.(Tbj+Rbj) + (zb-l)Dbj),Dai]+Dbj+i^iTai其中 qlzCDa1-Tbj.0ATbj+Rbj); ?如果條件[B.1]為假,則評估以下條件:[B.2]Dai^;Tbj+i+Rbj+i+Tbj+2且Dbj+min[ql(zb.Tbj+(zb_l)Dbj)+zb.Rbj,Dai]+Dbj+i^iTai其中 ql = (Da1-RbrTbj+1)/Tbj; ?如果條件[C.1]為假,則評估以下條件: [C.2 ]Dbj^;Tai+min [ Tbj-Dai ,Rai ,Ra1-1 ] ?如果條件[A.1]或[A.2]與[B.1]或[B.2]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。6.根據(jù)權(quán)利要求5所述的方法,其中該驗(yàn)證步驟包括以下步驟: ?如果條件[B.1 ]為假,則在條件[B.2 ]之前評估以下條件:[B.l.l]Dai^Tbj+Rbj+Tbj+i且 Dbj-1<Tl+min[Tbj-ι+Dbj-ι+Rbj-l-Tl-Da1-1,Ra1-2]其中 ql = (Da1-Rbr Tbj+i)/Tbj 且 Tl = Ta1-1- (1-ql )Tbj+Rai—i ?如果條件[A.1]或[A.2]與[B.1]或[B.1.1]與[C.1]或[C.2]針對每個(gè)配對(i,j)都滿足,則授權(quán)任務(wù)的執(zhí)行。
【文檔編號(hào)】G06F9/48GK105830030SQ201480069234
【公開日】2016年8月3日
【申請日】2014年11月27日
【發(fā)明人】V·大衛(wèi), A·巴爾博
【申請人】克羅諾安全公司