τ 極大空閑區間maxEI是指,時刻 L為任務τ ^勺釋放時間或者任務集{τ τ2,...,τη1}中的任務結束時間,并且從時刻t2 開始有任務集{ τ i,τ 2, . . .,τ n J中的任務釋放或者七2等于Φ _(1 ^kXLCM1 1;對 于TP模型,如果一個任務τ i的空閑區間[tl,t2)或者極大空閑區間[ti,t2)滿足"-心泛 C1,則區間[ti,t2)稱為任務τ ^勺一個允許區間PI。
[0027] 實施例6: 根據實施例1或2或3或4或5所述的基于線性鏈表的實時任務可調度性測試半直接 模擬方法,所述的給出該任務集可調度或者不可調度信息,在給出任務集是可調度的信息 時,給出Hiax1 g i s n (LRT1),表示全部任務τ 1在當前優先級設置和任務釋放偏移時的最大 響應時間。
[0028] 實施例7: 根據實施例1或2或3或4或5或6所述的基于線性鏈表的實時任務可調度性測試半 直接模擬方法,所述的合并調度執行區間時間點邊界重合的鏈表結點是指,如果在鏈表中 會產生或者有兩個相鄰的結點Nodel和Node2使得Nodel的end字段值等于Node2的start 字段值,則將這兩個結點合并為一個結點Node3鏈入鏈表中Nodel的位置,代替Nodel和 Node2這兩個結點,其中Node3的start字段值賦值為Nodel的start字段值,Node3的end 字段值賦值為Node2的end字段值,Node3的next字段值賦值為Node2的next字段值。
[0029] 實施例8: 根據實施例1或2或3或4或5或6或7所述的基于線性鏈表的實時任務可調度性測 試半直接模擬方法,執行模擬單個任務實例函數Fl對任務τ i的第j個任務實例τ u進 行模擬,即,【tempQ- C i;根據r u在鏈表中通過與結點中的start字段值及end字段值 比較查找當前作業j在鏈表中的相對位置,分以下5種情形,且在模擬過程中盡可能合并 調度占用區間時間點邊界重合的結點:(一)如果r u大于最后一個結點的end字段值,則 H inter- MAXintCT - !Ti,_j;增加一個新結點作為鏈表中的最后結點鏈入,新結點的start字段 值賦值為新結點的end字段值賦值為min(r u+tempCi,MAXinter);如果inter〈tempC i, 則修改標志變量flag值不同于其初值;〗;(二)如果r u等于最后一個結點的end字段 值,貝 1J ? 令 inter- MAX inter - ru;將 min (MAX inter,!TiJtempCi)賦值給最后一個結點的 end 字段;如果inteKtempQ,則修改標志變量flag值不同于其初值;3 ;(三)如果r i j小于 第一個結點的start字段值,貝丨】?記第一個結點為Nodel,令inter- Nodel的start字段 值如果inter〈 tempCp則『將Nodel的start字段值賦值為r 如果是按CP模型 調度,則tempQ- tempC ; - inter;如果是按TP模型調度,則tempC廣C i;接著按下面的情 形(五)繼續調度當前第j個任務實例;』;如果interHempC ;,則增加一個新結點作為鏈 表中的第一個結點鏈入,其中,新結點的start字段值賦值為r u,新結點的end字段值賦 值為如果inter等于tempC ;,則將第一個結點的start字段值賦值為r i」;3 ; (四)如果存在結點Nodel和Node2使;r ^大于Nodel的end字段值并且r 小于Node2 的start字段值,貝ijdinter- Node2的start字段值-r 如果interHempCp則在鏈表 中Nodel和Node2之間增加一個新結點鏈入,其中,新結點的start字段值賦值為r 新結 點的end字段值賦值為r u+tempCi;如果inter等于tempC ;,則將Node2的start字段值賦 值為如果inter〈tempC ;,則『將Node2的start字段值賦值為r 如果是按CP模型 調度,則tempQ- tempC ; - inter;如果是按TP模型調度,則tempC廣C i;此時將Node2記 為Nodel,接著按下面的情形(五)繼續調度當前第j個任務實例;』;〗;(五)如果存在 結點Nodel使得r 大于等于Nodel的start字段值并且小于等于Nodel的end字段值, 則繼續調度當前第j個任務實例,直到當前第j個任務實例的剩余時間tempC i為零,即執行 循環體H,其循環控制條件為:當tempQX);循環體H具體為:〖如果Nodel之后沒有其它結 點,貝 1J『令 inter - MAXinter-Nodel 的 end字段值;如果 inter ^tempCi,則[將 Nodel 的 end字段值加上tempC ;賦值給Nodel的end字段;LRT max (Nodel的end字段值-r u, LRT1) ;tempC 0;];如果 inter〈 tempC p 則[將 Nodel的 end字段值賦值為 MAX inter,修 改標志變量flag值不同于其初值,tempts-0;];』;如果Nodel之后有其它結點,則:記 Nodel的next字段所指結點為Node2, inter - Node2的start字段值-Nodel的end字 段值;如果interHempCp則『將Nodel的end字段值+tempC ;賦值給Nodel的end字段, LRTi^max(Nodel 的 end 字段值 _r ^pLRT^tempCi-0;』;如果 inter 等于 tempC i, 則『LRT1^ max (Node 1的end字段值-r i ^LRT1);將Node 1的end字段值賦值為Node2的 end字段值,將Nodel的next字段值賦值為Node2的next字段值;tempC 0;』;如果 inteKtempQ,則『將Nodel的end字段值賦值為Node2的end字段值,將Nodel的next字 段值賦值為Node2的next字段值;如果是按CP模型調度,則tempC tempC; - inter;如果 是按TP模型調度,則tempC C 1;』;〗;如果標志變量flag值不同于其初值或者LRT AD1, 則返回不可調度信息并中止對該任務集的可調度性測試;】。
[0030] 實施例9: 根據實施例1或2或3或4或5或6或7或8所述的基于線性鏈表的實時任務可調度 性測試半直接模擬方法,測試模擬單個任務函數F2對任務τ i進行測試,g卩,【按TP模型調 度時I在當前鏈表上,從時間點Φ_(1)到時間點Φ _(1 1WCM1 i查找全部的允許區間iPI, 記允許區間iPI的個數為k,如果k等于0,則返回不可調度信息并中止對該任務集的可調 度性測試;如果k>0,則『tempQ- C 1;記從Φ _(1 1}到Φ _(1 "+LCM1 i內第一個允許區間為 [ts!,ts2);對每個 j,I I j 在LCMiAi,「mod 廣 mod(r u - S,LCMi !)+S,如果 modfOj1 D 且j>l,則modj- mod』+ LCMi丨;記mod』之后的第一個允許區間為[t .卩,tj2),如果modj到 O1J1 WlXM1 i之間沒有允許區間,則將[ts JLCM1 p tsjLCMi J作為mod」之后的第一個允 許區間,仍記為[tn,tj2);如果mod,則,如果 t!,則 LRTi^ max(t.n - modj+ tempCp LRT1);」;』;如果LRIVD1,則返回不可調度信息并中止對該任務集的可調度性測試;3; 按 CP 模型調度時 I對每個 j,l 玄 J^LCM1A1,「tempC廣 C1;mod 廣 InocKrlij-S, LCM11)+S,如果 D且 j>l,則 mod』一 Hiod j+ LCM11AempLRT1^ LRT1, LRT1^O; Loc-mod .j;cycle- 0;執行循環體Loopl,其循環控制條件為:當tempC ;>0,循環體Loopl 具體為:『執行尋找任務Ti的極大空閑區間函數SearchmaxEI (i);如果LRT PDi,則返回 不可調度信息并中止對該任務集的可調度性測試;如果標志變量flag值不同于其初值,則 [cycle值增加 l;Loc- Φ _(1 D;給標志變量flag值賦其初值;];』;LRT廣HiaxaRT1, tempLRTj ;如果標志變量flag值不同于其初值或者LRT AD1,則返回不可調度信息并中止 對該任務集的可調度性測試;3;其中,尋找任務Ti的極大空閑區間函數SearchmaxEI (i) 是指,K在任務τ i,τ 2, . . .,τ n i的調度結果從時間點Loc開始不超過時間點Φ _(1 1^LCM1 i 的范圍內尋找任務T1的第一個極大空閑區間;如果沒找到任務τ 極大空閑區間 maxEI,則[如果cyCle>l,則返回不可調度信息并中止對該任務集的可調度性測試;否則, 修改標志變量flag值不同于其初值;];如果找到一個任務τ ^勺極大空閑區間maxEI, 記為[tji,tj2),貝 1J『如果 tj2 _ tn 芝 tempCi,則[LRTi- t .JcycleXLCMi ! - Loc+ tempCi+ LRTytempC 土一 0;];如果 t j2 - tJ^tempCi,貝!j [LRTi^ t j2+cycle X LCMi 丄-Loc+LRT;; tempCi- tempC ; - (tj2 - tn) ;Loc- t j2;];』;3 ;】〇
[0031] 實施例10: 根據實施例1或2或3或4或5或6或7或8或9所述的基于線性鏈表的實時任務可 調度性測試半直接模擬方法,按CP模型進行調度,本實施例中每個任務實例的優先級即為 相應任務的優先級,即每個任務實例的優先級固定。
[0032] 給定由n=4個周期性任務(或事件)構成的任務集合{ τ τ 2, τ 3, τ J,有關參數 如表1所示。
[0033] 表1任務參數
在采用已有方法確定了穩定點S=Il和調整釋放偏移之后見表2,按給定的CP模型, 采用線性鏈表記錄調度過程,給標志變量flag值賦一個初值,從點S開始,使用半直接模 擬方法,進行任務集{ τ τ 2, τ 3, τ J的可調度性測試;其中,LCM嚴6, LCM2=24, LCM3=24, ^1