關(guān)鍵實(shí)時(shí)系統(tǒng)中執(zhí)行任務(wù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及設(shè)計(jì)為采用通過(guò)時(shí)基設(shè)定的強(qiáng)制時(shí)間線來(lái)執(zhí)行進(jìn)程的關(guān)鍵實(shí)時(shí)系統(tǒng)。本發(fā)明特別涉及在它們的實(shí)施中要求高等級(jí)性能的實(shí)時(shí)系統(tǒng),并且涉及其中在向系統(tǒng)中的每個(gè)任務(wù)所分配的硬件執(zhí)行資源的使用中要求高等級(jí)安全性的關(guān)鍵系統(tǒng)。
[0002]本發(fā)明特別適用于諸如在運(yùn)輸(汽車(chē),鐵路,海運(yùn),航空航天),工業(yè)自動(dòng)化,能源的領(lǐng)域中使用的進(jìn)程控制系統(tǒng),以及如通信網(wǎng)絡(luò)的對(duì)于其受控資源分配很重要的其它系統(tǒng)。
【背景技術(shù)】
[0003]在關(guān)鍵實(shí)時(shí)系統(tǒng)中,任務(wù)通常被建模為周期性活動(dòng),導(dǎo)致基于任務(wù)調(diào)度的固定優(yōu)先級(jí)規(guī)則的多任務(wù)系統(tǒng)的實(shí)現(xiàn),提供性能成績(jī)的保障。例如,在文章["Schedulingalgorithms for Multiprogramming in a hard real-time environment", C.Liu, J.Layland, Journal of the ACM, vol.20, n0.1, pp.46-61]中描述過(guò)這樣的系統(tǒng)。
[0004]然而,當(dāng)非常簡(jiǎn)單的周期性任務(wù)的模型通過(guò)任意分割使多任務(wù)系統(tǒng)的設(shè)計(jì)成為不是周期性的先驗(yàn)的特定實(shí)時(shí)活動(dòng)的周期性任務(wù),從而使該多任務(wù)系統(tǒng)的設(shè)計(jì)復(fù)雜化或?qū)ζ浼s束時(shí),該方法缺乏靈活性。實(shí)際上,當(dāng)非周期性實(shí)時(shí)活動(dòng)以周期性活動(dòng)的形式實(shí)施時(shí),這會(huì)導(dǎo)致增加任務(wù)數(shù)量或提高執(zhí)行速度以便分別地滿足時(shí)間約束。然后每個(gè)任務(wù)可能對(duì)于每個(gè)周期性的執(zhí)行不再有用,其將負(fù)面地影響多任務(wù)系統(tǒng)的性能。
[0005]其它方法,諸如在文章“[“G1tto:ATime-Triggered Language forEmbedded Programming”,Thomas A.Henzinger, Benjamin Horowitz, and ChristophMeyer Kirsch, EMSOFT 2001, pp.166-184, 2001, Springer-Verlag]和[“A method anda technique to model and ensure timeliness in safety critical real-timesystems,,,C.Aussagues, V.David, Fourth IEEE Internat1nal Conference onEngineering of Complex Computer Systems, 1998]中描述的這些內(nèi)容,提出更靈活的任務(wù)模型以便描述每一個(gè)任務(wù)為時(shí)間活動(dòng)的序列。然后使任務(wù)形式化為具有時(shí)間約束的進(jìn)程的圖的形式,其中如美國(guó)專(zhuān)利N0.7,299,383中所提議的,如果有需要,則進(jìn)程可以是有條件的。
[0006]那么可能實(shí)現(xiàn)多任務(wù)系統(tǒng)的高靈活性和高等級(jí)性能,并且甚至正式保證任務(wù)可被調(diào)度,但這種保證一般要求系統(tǒng)中的動(dòng)態(tài)調(diào)度。這導(dǎo)致其中針對(duì)調(diào)度競(jìng)爭(zhēng)的任務(wù)或任務(wù)進(jìn)程中的任務(wù)之間的時(shí)間干涉,并且因此可能在并發(fā)任務(wù)之前或之后執(zhí)行任務(wù)。
[0007]在關(guān)鍵系統(tǒng)中,其中執(zhí)行的安全性是最重要的,因?yàn)楹谋M一切地測(cè)試所有可能的調(diào)度組合或證明故障狀態(tài)的不存在是不可能的,所以避免動(dòng)態(tài)調(diào)度系統(tǒng)。于是優(yōu)選采用簡(jiǎn)化的測(cè)試組合的系統(tǒng),因此限制任務(wù)之間的時(shí)間干擾的系統(tǒng)。這通常導(dǎo)致使用缺乏靈活性的靜態(tài)方法。
【發(fā)明內(nèi)容】
[0008]存在用于配置基于靈活性任務(wù)模型的實(shí)時(shí)系統(tǒng),但是提供限制時(shí)間干涉的實(shí)施方式的需求。
[0009]本發(fā)明涉及用于執(zhí)行由一組連序并備選的進(jìn)程組成的任務(wù)的方法。方法包括步驟:
[0010]a)為每個(gè)進(jìn)程指派硬件資源需求和時(shí)間約束;
[0011]b)為每個(gè)進(jìn)程分配具有對(duì)應(yīng)于進(jìn)程的時(shí)間約束的持續(xù)時(shí)間的時(shí)隙;
[0012]c)識(shí)別在該處決定兩個(gè)備選進(jìn)程中的一個(gè)或另一個(gè)進(jìn)程的執(zhí)行的分支點(diǎn);
[0013]d)為兩個(gè)備選進(jìn)程分配公共時(shí)隙;
[0014]e)為公共時(shí)隙指派等于兩個(gè)備選進(jìn)程中的資源需求的較大者的資源需求;
[0015]f)針對(duì)每一個(gè)分支點(diǎn),迭代步驟c);
[0016]g)組合在與任務(wù)相關(guān)聯(lián)的執(zhí)行模板中生成的時(shí)隙;以及
[0017]h)根據(jù)向執(zhí)行模板的時(shí)隙指派的資源需求,配置實(shí)時(shí)多任務(wù)系統(tǒng)以便約束任務(wù)的執(zhí)行。
[0018]方法可包括以定義由轉(zhuǎn)換節(jié)點(diǎn)連接的一組進(jìn)程的圖的形式來(lái)表示任務(wù)的步驟,其中每一個(gè)轉(zhuǎn)換節(jié)點(diǎn)在任務(wù)在多任務(wù)系統(tǒng)上的執(zhí)行期間根據(jù)時(shí)基定義同步點(diǎn);從進(jìn)程的源轉(zhuǎn)換節(jié)點(diǎn)和目的地轉(zhuǎn)換節(jié)點(diǎn)中,定義向每一個(gè)進(jìn)程分配的時(shí)隙的極限;對(duì)于具有公共源節(jié)點(diǎn)和兩個(gè)相應(yīng)目標(biāo)節(jié)點(diǎn)的兩個(gè)備選進(jìn)程,合并兩個(gè)目標(biāo)節(jié)點(diǎn)為合并的目標(biāo)節(jié)點(diǎn);并且由公共源節(jié)點(diǎn)和所合并的目標(biāo)節(jié)點(diǎn),定義備選進(jìn)程兩者的公共時(shí)隙。
[0019]針對(duì)在步驟c)具有不同的時(shí)間約束的兩個(gè)備選進(jìn)程,方法可包括以下步驟:在具有最長(zhǎng)時(shí)間約束的兩個(gè)備選進(jìn)程中的第一備選進(jìn)程中生成中間轉(zhuǎn)換節(jié)點(diǎn),產(chǎn)生在源節(jié)點(diǎn)與中間節(jié)點(diǎn)之間的第一部分備選進(jìn)程,和在中間節(jié)點(diǎn)和第一備選進(jìn)程的目標(biāo)節(jié)點(diǎn)之間的第二部分進(jìn)程;為第一部分備選進(jìn)程指派第一資源需求和等于第二備選進(jìn)程的時(shí)間約束的時(shí)間約束;為第二部分進(jìn)程指派第二資源需求,和等于兩個(gè)備選進(jìn)程的時(shí)間約束之差的時(shí)間約束,其中該第二資源需求使第一和第二資源需求之和等于第一備選進(jìn)程的資源需求;根據(jù)步驟d)進(jìn)行第一部分備選進(jìn)程和第二備選進(jìn)程。
[0020]方法可包括以下步驟:在每個(gè)時(shí)隙,通過(guò)監(jiān)視器檢查進(jìn)行中的進(jìn)程的執(zhí)行遵守向時(shí)隙指派的資源需求;并且如果進(jìn)行中的進(jìn)程的執(zhí)行超過(guò)資源需求并且進(jìn)行中的進(jìn)程是第一部分備選進(jìn)程,則忽略通過(guò)監(jiān)視器發(fā)出故障信號(hào)。
[0021]方法可包括以下步驟:根據(jù)第一部分備選進(jìn)程的執(zhí)行,設(shè)定狀態(tài)變量;如果進(jìn)行中的進(jìn)程的執(zhí)行超過(guò)資源需求并且設(shè)定了狀態(tài)變量,則忽略通過(guò)監(jiān)視器發(fā)出故障信號(hào);并且對(duì)應(yīng)于合并的目標(biāo)節(jié)點(diǎn)的同步點(diǎn)清除狀態(tài)變量。
[0022]方法可包括針對(duì)圖的循環(huán)部分的下列步驟:將每個(gè)具有更長(zhǎng)時(shí)間約束的進(jìn)程分成一組具有更短時(shí)間約束的部分進(jìn)程,該更短時(shí)間約束為循環(huán)部分中時(shí)間約束的最大公約數(shù),從而將圖的循環(huán)部分轉(zhuǎn)變成為歸一化的子圖,該子圖定義一系列全部具有相同歸一化時(shí)間約束的完整或部分進(jìn)程;以及在對(duì)應(yīng)的部分進(jìn)程之間為每個(gè)具有更長(zhǎng)時(shí)間約束的進(jìn)程分配資源需求,從而部分進(jìn)程的資源需求之和等于具有更長(zhǎng)時(shí)間約束的進(jìn)程的資源需求。
[0023]方法可包括以下步驟:將子圖的第一部分的末端與子圖的第二部分的始端重疊,使得子圖的第一部分的末端的轉(zhuǎn)換節(jié)點(diǎn)與子圖的第二部分的始端的相應(yīng)的節(jié)點(diǎn)重合,從而通過(guò)兩對(duì)連續(xù)的重合節(jié)點(diǎn)定義與具有第一對(duì)的兩個(gè)節(jié)點(diǎn)作為相應(yīng)起源的進(jìn)程公用的時(shí)隙;以及指派共有時(shí)隙,因此限定資源需求等于與第一對(duì)節(jié)點(diǎn)相關(guān)的進(jìn)程中最大的資源需求,并且時(shí)間約束等于歸一化的時(shí)間約束。
【附圖說(shuō)明】
[0024]從僅出于示例性目的提供并在附圖中表示的本發(fā)明的特定實(shí)施例的以下描述中,其它優(yōu)點(diǎn)和特征將變得更顯而易見(jiàn),在附圖中:
[0025]圖1是符合具有采用相同時(shí)間約束的分支備選的靈活性任務(wù)模型的實(shí)時(shí)任務(wù)圖的示例;
[0026]圖2A和2B示出圖1中的圖的可能處理序列中的一種處理序列的部分執(zhí)行軌跡,以及并行任務(wù)的