允許確定性的實時錯誤恢復(fù)的任務(wù)時間分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及實時多任務(wù)系統(tǒng),所述系統(tǒng)包括通過相同時間基準(zhǔn)計時的一組時間獨 立的任務(wù),并且其執(zhí)行時間約束是已知的。本發(fā)明特別涉及在它們的實施中要求高性能的 實時系統(tǒng),以及對分配給系統(tǒng)的每個任務(wù)的執(zhí)行硬件資源的使用要求高保證程度的關(guān)鍵系 統(tǒng)。
[0002] 本發(fā)明特別適用于命令和控制系統(tǒng),例如那些在(汽車、軌道、海洋和空中)運輸、 工業(yè)自動化、能源領(lǐng)域使用的系統(tǒng),以及用于其資源的受控分配非常重要的其他系統(tǒng),如在 通信網(wǎng)絡(luò)中。
【背景技術(shù)】
[0003] 在關(guān)鍵的實時系統(tǒng)中,任務(wù)通常會根據(jù)靜態(tài)調(diào)度方法執(zhí)行,以便執(zhí)行時間配額的 靜態(tài)時間分配以用于使用例如處理器的執(zhí)行資源。就資源的使用一一特別是處理器的使用 來說,這使得在任務(wù)自身之間的時間獨立性得以表現(xiàn)出來。這種簡單的和被廣泛接受的愿 景(vision)沒有考慮任務(wù)之間通信的問題,其特別地在文獻(xiàn)[3]、[4]、[7]、[8]中被處理。 然而,這一愿景帶來包括超高速緩存的現(xiàn)代處理器上的實施的問題。事實上,這些超高速 緩存的內(nèi)容取決于任務(wù)和被存取數(shù)據(jù)的整個執(zhí)行歷程?,F(xiàn)在,這些存儲器的狀態(tài)影響交叉 任務(wù)的處理操作的執(zhí)行時間。這些條件下,很難保證處理操作的執(zhí)行時間的絕對上部邊界 (參考文獻(xiàn)[5]-WCET-最壞情況執(zhí)行時間_)。因而計算這些上部邊界的正式方法導(dǎo)致與 實驗結(jié)果相比的這些上部邊界的可能明顯的過高估計。
[0004] 此外,在某些實時多任務(wù)系統(tǒng)中,必需保證任務(wù)不互相干擾,即在被分配給另一任 務(wù)的時間內(nèi),任務(wù)不能被執(zhí)行或它的執(zhí)行不能結(jié)束。在任務(wù)之間的追求這樣的不干擾在一 定的領(lǐng)域?qū)е略诜峙浣o處理操作的每個時間窗口的開始處去激活(deactivating)超高速 緩存或清空它們的全部內(nèi)容,以便具有獨立于前面的處理操作的執(zhí)行的狀態(tài)(空)。然而, 該清空超高速緩存的操作顯著地降低了多任務(wù)系統(tǒng)的性能。此外,在一些情況下處理操作 可以被分成幾個不同時間窗口,這要求在處理操作的執(zhí)行期間多次清空超高速緩存。
[0005] 出于這些不同的原因,實時系統(tǒng)的設(shè)計者被迫將這樣的系統(tǒng)設(shè)計得過分大。從 實用的角度來看,為了使得該方法帶來較少的性能下降,處理器的時間分配基于比"理論 的"WCET短的執(zhí)行時間要求來執(zhí)行,導(dǎo)致接受一定的錯誤率。此方法的主要缺點在于沒有 表征處理操作的執(zhí)行時間的分配定律的任何模型,真正使得錯誤率就分配的時間配額而言 可被評估。特別地,當(dāng)可接受的誤碼率必須非常低并且因此產(chǎn)生于非常少的事件的時候,采 用這種基于極低實驗抽樣的該方法來展示這些系統(tǒng)具有確定性的行為是不可能的。因此, 為了提高這類系統(tǒng)的魯棒性,一種公知的方法涉及在執(zhí)行時間配額上這樣的錯誤實施錯 誤-恢復(fù)措施,以將剩余錯誤的情況降低到極低數(shù)值。
[0006] 需要注意,為了克服尺寸過大的明顯問題,它通常通過將未使用的時間(在平均 執(zhí)行時間和分配的時間配額之間的差異)動態(tài)地再分配給作為非優(yōu)先級后臺任務(wù)的非實 時和非關(guān)鍵任務(wù)(參考文獻(xiàn)[2]、[7]、[8])。然而,該解決方案沒滿足相同目標(biāo)并且對關(guān)鍵 的實時任務(wù)沒有任何貢獻(xiàn)。
[0007] 同樣地,對于關(guān)鍵實時任務(wù)的執(zhí)行期間出現(xiàn)的其他類型的易受影響錯誤,具有這 樣的確定性的實時錯誤處置機(jī)制是有益的,同時不會對其它正被執(zhí)行的任務(wù)有任何干擾。 這實現(xiàn)了錯誤恢復(fù),而無需在任務(wù)執(zhí)行流中斷開并且用充分的時間約束來保證足夠動作的 實施。這些問題在非同步系統(tǒng)中具有已知解決方案,即無任何執(zhí)行時間約束。然而,這些解 決方案不提供任何實時性能保證,它們不適合于尋求處理操作之間的無干擾的關(guān)鍵任務(wù)的 環(huán)境,當(dāng)然包括在運行故障的情形下。
[0008] 因而,期望能夠產(chǎn)生這樣的應(yīng)用,該應(yīng)用包括通過相同時間基準(zhǔn)計時的一組任務(wù), 同時保證在其上執(zhí)行任務(wù)的多任務(wù)系統(tǒng)的高效和可靠使用??梢赃M(jìn)一步期望分配足夠的時 間給錯誤處置,以便在確定的時間完成,并與關(guān)鍵的實時系統(tǒng)的約束兼容,而沒有與其它任 務(wù)的任何干擾風(fēng)險。還期望使用未使用的分配時間進(jìn)行不同的優(yōu)化,例如溫度調(diào)節(jié)、能耗最 小化,或關(guān)鍵任務(wù)的分布式或共享的執(zhí)行。進(jìn)一步期望能夠保證通過多任務(wù)系統(tǒng)執(zhí)行的應(yīng) 用的任務(wù)處理的正確順序,并能表明該排序是正確的。
【發(fā)明內(nèi)容】
[0009] -些實施例涉及一種用于在多任務(wù)計算機(jī)上執(zhí)行實時應(yīng)用的任務(wù)的方法,每個任 務(wù)包括至少一個處理操作,該方法包括以下步驟:定義時間窗口,每個時間窗口與所述應(yīng) 用的任務(wù)的處理操作的執(zhí)行相關(guān),向具有時間窗口的每個處理操作分配時間配額和時間余 裕,通過時間配額和時間余裕分配給處理操作的時間比與所述處理操作相關(guān)的時間窗口的 持續(xù)時間短,在通過多任務(wù)系統(tǒng)執(zhí)行所述應(yīng)用期間,在與其相關(guān)的時間窗口的開始激活每 個處理操作,在處理操作之一的時間配額期滿時,如果所述處理操作的執(zhí)行還沒有被完成, 則激活錯誤模式,如果錯誤模式對于所述處理操作之一是激活的,則在通過時間配額和時 間余裕分配給處理操作的剩余時間內(nèi),執(zhí)行處于錯誤模式的處理操作的錯誤處置過程。 [0010] 根據(jù)一個實施例,該方法包括下列步驟:如果錯誤模式對于所述處理操作之一是 激活的,繼續(xù)執(zhí)行在分配給處理操作的時間配額期滿時其執(zhí)行沒有完成的處理操作,同時 監(jiān)控分配給處理操作的時間余裕的期滿,并且在分配給處理操作的時間余裕期滿時,如果 處理操作的執(zhí)行還沒有被完成,則結(jié)束所述處理操作的執(zhí)行并執(zhí)行時間配額溢出錯誤處置 操作。
[0011] 根據(jù)一個實施例,該方法包括下列步驟:將與時間窗口相關(guān)的處理操作分段為在 若干時間窗口上擴(kuò)展,用于處理該應(yīng)用的其他任務(wù),以使得每個時間窗口排他地與處理操 作或處理操作片段相關(guān),向每個處理操作片段分配時間配額,使得分段的處理操作的所有 片段的時間配額的總和等于被分段的處理操作的時間配額,與分段的處理操作相關(guān)的時間 余裕與分段的處理操作的最后片段相關(guān)聯(lián),將每個處理操作片段關(guān)聯(lián)到表明它是否為被分 段的處理操作的最后片段的狀態(tài)變量,如果與處理操作片段相關(guān)的狀態(tài)變量表明該處理操 作片段不是被分段的處理操作的最后片段,則在該處理操作片段的配額期滿時錯誤模式不 被激活。
[0012] 根據(jù)一個實施例,其中與時間配額相關(guān)的每個處理操作的余裕是通過將乘法因子 施加到處理操作的時間配額而計算得出,所述乘法因子對與時間配額相關(guān)的所有處理操作 是相同的。
[0013] 根據(jù)一個實施例,其中確定乘法因子(Kx)以便應(yīng)用的任務(wù)可以根據(jù)處理操作的 時間要求、根據(jù)與處理操作相關(guān)的時間窗口、以及根據(jù)對計算機(jī)(RTS)的特征被調(diào)度。
[0014] 根據(jù)一個實施例,處理操作由通過第一時間基準(zhǔn)計時的處理器執(zhí)行,與處理操作 相關(guān)的時間窗口以與第一時間基準(zhǔn)相比不規(guī)則的第二時間基準(zhǔn)定義,第二時間基準(zhǔn)中的時 間單位具有第一時間基準(zhǔn)中的最小值,乘法因子根據(jù)該最小值被定義。
[0015] 根據(jù)一個實施例,每個處理操作與表明它是否執(zhí)行涉及執(zhí)行該處理操作的處理器 的輸入/輸出的狀態(tài)變量相關(guān),并且如果處理操作之一與表明處理操作不執(zhí)行任何輸入/ 輸出的狀態(tài)變量相關(guān),則前面處理操作的執(zhí)行一結(jié)束,處理操作的執(zhí)行就被啟動而無需等 待處理操作的時間窗口的開始。
[0016] -些實施例還涉及一種包括執(zhí)行實時應(yīng)用的多任務(wù)計算機(jī)的實時多任務(wù)系統(tǒng),所 述實時應(yīng)用包括若干任務(wù),每個任務(wù)包括至少一個處理操作,所述系統(tǒng)被配置為:存儲時間 窗口,每個時間窗口都與應(yīng)用的任務(wù)的一組處理操作的執(zhí)行相關(guān),為具有時間窗口的每個 處理操作存儲時間配額和時間余裕,通過時間配額和時間余裕分配給處理操作的時間比與 所述處理操作相關(guān)的時間窗口的持續(xù)時間短,執(zhí)行應(yīng)用的處理操作,并且在處理操作之一 的時間配額期滿時,如果所述處理操作的執(zhí)行還沒有被完成,則激活錯誤模式,如果錯誤模 式對于所述處理操作之一是激活的,則在通過時間配額和時間余裕分配給處理操作的剩余 時間內(nèi),執(zhí)行處于錯誤模式的處理操作的錯誤處置過程。
[0017] 根據(jù)一個實施例,所述系統(tǒng)被配置為:如果錯誤模式對于所述處理操作之一是激 活的,繼續(xù)執(zhí)行在分配給處理操作的時間配額期滿時其執(zhí)行沒有完成的處理操作,同時監(jiān) 控被分配給處理操作的時間余裕的期滿,在分配給處理操作的時間余裕的期滿時,如果處 理操作的執(zhí)行還沒有被完成,則結(jié)束所述處理操作的執(zhí)行并執(zhí)行時間配額溢出錯誤處置操 作。
[0018] 根據(jù)一個實施例,所述系統(tǒng)被配置為:存儲與時間窗口相關(guān)的一些處理操作被進(jìn) 行分段的事實,為每個處理操作片段存儲時間窗口和時間配額以用于所述處理操作片段的 執(zhí)行,為每個分段的處理操作的最后片段存儲作為相關(guān)的時間余裕,所述時間余裕與分段 的處理操作相關(guān),為每個處理操作片段存儲狀態(tài)變量,所述狀態(tài)變量表明該片段是否為被 分段的處理操作的最后片段,以及在應(yīng)用的執(zhí)行期間,如果與處理操作片段相關(guān)的狀態(tài)變 量表明該片段不是被分段的處理操作的最后片段,則在處理操作片段的配額期滿時不激活 錯誤模式。
[0019] 根據(jù)一個實施例,所述系統(tǒng)被配置為通過將乘法因子施加到處理操作的時間配額 來確定與時間配額相關(guān)的每個處理操作的余裕,所述乘法因子對于與時間配額相關(guān)的所有 處理操作是相同的。
[0020] 根據(jù)一個實施例,所述系統(tǒng)包括通過第一時間基準(zhǔn)計時的處理器以執(zhí)行處理操 作,并且接收與第一時間基準(zhǔn)相比不規(guī)則的第二時間基準(zhǔn),該系統(tǒng)被配置為以第二時間基 準(zhǔn)確定與處理操作相關(guān)的時間窗口,第二時間基準(zhǔn)中的時間