專利名稱:一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實時調(diào)度多任務(wù)的處理系統(tǒng)及方法,尤其涉及一種適用于電梯單片機系統(tǒng)的非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)及使用該系統(tǒng)非搶占式實時調(diào)度多任務(wù)的處理方法,屬于實時操作系統(tǒng)技術(shù)領(lǐng)域。
背景技術(shù):
電梯單片機程序包含實時性要求很高的速度控制、安全控制任務(wù),同時還有對時間周期要求嚴(yán)格的位置檢測任務(wù),以及大量對時間要求不高的各種邏輯控制任務(wù),所以電梯單片機需要一種可以合理調(diào)度以上各類任務(wù)的操作系統(tǒng),來達(dá)到實時調(diào)度多任務(wù)的要求。所謂調(diào)度就是對給定的一組實時任務(wù)和系統(tǒng)資源,確定每個任務(wù)何時何地執(zhí)行的整個過程。調(diào)度的目的是要盡可能保證每個任務(wù)滿足他們的時間約束,及時對外部或內(nèi)部請求做出響應(yīng)。實時操作系統(tǒng)中的非搶占式調(diào)度系統(tǒng)的優(yōu)點是上下文切換少,調(diào)度算法簡單,非常適合包含大量復(fù)雜邏輯控制的應(yīng)用場合,但是,傳統(tǒng)的非搶占式任務(wù)調(diào)度系統(tǒng)不允許任務(wù)在執(zhí)行期間被中斷,任務(wù)一旦占用處理器就必須執(zhí)行完畢或自愿放棄,導(dǎo)致資源利用率低,響應(yīng)速度慢,對于實時性要求高、時間響應(yīng)快、或者時間周期要求比較固定的任務(wù)無法有效地處理,無法滿足一些關(guān)鍵任務(wù)對于實時性的要求。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的上述問題和不足,本發(fā)明的目的是提供一種資源利用率高、響應(yīng)速度快的非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)及使用該系統(tǒng)非搶占式實時調(diào)度多任務(wù)的處理方法,以滿足電梯單片機的高效、低成本運行要求。為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案如下一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng),包括任務(wù)執(zhí)行單元和任務(wù)調(diào)度單元,所述任務(wù)執(zhí)行單元包括若干任務(wù)模塊,所述任務(wù)調(diào)度單元包括任務(wù)執(zhí)行狀態(tài)控制模塊和優(yōu)先級處理模塊;其特征在于所述任務(wù)執(zhí)行單元包括如下3類任務(wù)模塊,即,執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù)模塊,執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù)模塊,執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù)模塊;所述任務(wù)執(zhí)行狀態(tài)控制模塊由任務(wù)定時模塊或/和信號觸發(fā)模塊組成;所述I類任務(wù)模塊依次與任務(wù)定時模塊A和優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路;所述II類任務(wù)模塊依次與信號觸發(fā)模塊A和優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路;所述III類任務(wù)模塊依次與相并聯(lián)的任務(wù)定時模塊B和信號觸發(fā)模塊B及優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路,且在優(yōu)先級處理模塊返回III類任務(wù)模塊的循環(huán)通路中還設(shè)有靜態(tài)定時模塊。作為一種優(yōu)選方案,將長任務(wù)模塊劃分為若干個相互串聯(lián)的任務(wù)片段模塊,每個任務(wù)片段模塊分別串聯(lián)有與其相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊。
作為進(jìn)一步優(yōu)選方案,與由I類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為任務(wù)定時模塊。作 為進(jìn)一步優(yōu)選方案,與由II類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為信號觸發(fā)模塊。作為進(jìn)一步優(yōu)選方案,與由III類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為并聯(lián)的任務(wù)定時模塊和信號觸發(fā)模塊。所述的任務(wù)執(zhí)行單元是用于任務(wù)模塊中的任務(wù)或任務(wù)片段被調(diào)度單元激活后,運行指定激活的任務(wù)或任務(wù)片段,運行完成后,任務(wù)執(zhí)行單元將系統(tǒng)控制權(quán)交給任務(wù)調(diào)度單元。在同一時間,所述的任務(wù)執(zhí)行單元只能運行一個任務(wù)或任務(wù)片段。所述的任務(wù)調(diào)度單元是用于監(jiān)控任務(wù)或任務(wù)片段的執(zhí)行狀態(tài),一旦監(jiān)控到任務(wù)或任務(wù)片段就緒,即進(jìn)行優(yōu)先級識別,然后激活需優(yōu)先激活的任務(wù)或任務(wù)片段。所述的任務(wù)定時模塊是用于控制所述任務(wù)或任務(wù)片段的執(zhí)行時間,當(dāng)任務(wù)或任務(wù)片段的執(zhí)行時間期滿,此任務(wù)或任務(wù)片段即進(jìn)入就緒狀態(tài),等待優(yōu)先級識別和激活。所述的信號觸發(fā)模塊是用于控制所述任務(wù)或任務(wù)片段等待信號,在信號到達(dá)后,使任務(wù)或任務(wù)片段進(jìn)入就緒狀態(tài),等待優(yōu)先級識別和激活。所述信號可以來自系統(tǒng)外部,也可以來自系統(tǒng)內(nèi)部。所述的優(yōu)先級處理模塊是用于識別任務(wù)或/和任務(wù)片段的優(yōu)先處理級別,每個任務(wù)被賦予一個優(yōu)先級,每個任務(wù)片段具有與對應(yīng)任務(wù)相同的優(yōu)先級;在已就緒的任務(wù)或/和任務(wù)片段中,擁有最高優(yōu)先級的任務(wù)或任務(wù)片段最先被調(diào)度單元激活,而擁有相同優(yōu)先級的任務(wù)或任務(wù)片段,依照任務(wù)創(chuàng)建的順序依次被激活。所述的靜態(tài)定時模塊是用于控制執(zhí)行時間不固定任務(wù)的執(zhí)行周期,當(dāng)所述任務(wù)的執(zhí)行周期期滿,該任務(wù)即被激活運行。靜態(tài)定時模塊不受任務(wù)執(zhí)行時長的影響。使用本發(fā)明所述處理系統(tǒng)非搶占式實時調(diào)度多任務(wù)的處理方法,包括如下步驟①將所有任務(wù)劃分為如下3類任務(wù)執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù),執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù),執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù);②當(dāng)控制I類任務(wù)執(zhí)行狀態(tài)的定時模塊A監(jiān)控所述任務(wù)的執(zhí)行時間期滿,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制II類任務(wù)執(zhí)行狀態(tài)的信號觸發(fā)模塊A等到信號到達(dá),立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制III類任務(wù)執(zhí)行狀態(tài)的任務(wù)定時模塊B或信號觸發(fā)模塊B監(jiān)控到所述任務(wù)執(zhí)行完畢,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活;③每一個任務(wù)被賦予一個優(yōu)先級,優(yōu)先級處理模塊對接收到的已就緒任務(wù)進(jìn)行優(yōu)先級識別,擁有最高優(yōu)先級的任務(wù)最先被調(diào)度單元激活,而擁有相同優(yōu)先級的任務(wù),依照任務(wù)創(chuàng)建的順序依次被激活;④當(dāng)靜態(tài)定時模塊監(jiān)控到執(zhí)行時間不固定任務(wù)的執(zhí)行周期期滿,該任務(wù)即被激活運行。作為一種優(yōu)選方案,將執(zhí)行周期長的任務(wù)劃分為若干個相互串聯(lián)的任務(wù)片段,每個任務(wù)片段分別串聯(lián)有與其相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊,且每個任務(wù)片段的優(yōu)先級與對應(yīng)長任務(wù)的優(yōu)先級相同;每個任務(wù)片段的處理過程與對應(yīng)的I類任務(wù)、II類任務(wù)或III類任務(wù)的處理過程相同,但必須等片段一任務(wù)執(zhí)行完畢后才能進(jìn)行片段二任務(wù)的執(zhí)行,依此類推,即,任務(wù)片段間的執(zhí)行順序為依次串聯(lián)關(guān)系。作為進(jìn)一步優(yōu)選方案,與由I類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為任務(wù)定時模塊。作為進(jìn)一步優(yōu)選方案,與由II類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為信號觸發(fā)模塊。作為進(jìn)一步優(yōu)選方案,與由III類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為并聯(lián)的任務(wù)定時模塊和信號觸發(fā)模塊。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明通過將包含多種不同特性的任務(wù)根據(jù)執(zhí)行周期和執(zhí)行時間的特性劃分為3大類,并對不同特性類別的任務(wù)給予相匹配的調(diào)度路徑和優(yōu)先級,從而縮短了系統(tǒng)的響應(yīng)時間,提高了資源利用率;另外,對于執(zhí)行周 期固定但執(zhí)行時間不固定的III類任務(wù),通過在循環(huán)通路中設(shè)置靜態(tài)定時模塊,可確保該類任務(wù)的執(zhí)行周期固定;尤其是,將執(zhí)行周期長的任務(wù)劃分為若干個執(zhí)行時間短的任務(wù)片段,可進(jìn)一步提聞系統(tǒng)的響應(yīng)速度,有效解決一些關(guān)鍵任務(wù)的實時性問題,能滿足電梯單片機的高效、低成本運行要求,具有實用價值。
圖I為本發(fā)明所述的非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)的結(jié)構(gòu)示意圖;圖2為實施例I提供的一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)的結(jié)構(gòu)示意圖;圖3為實施例2提供的一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)的結(jié)構(gòu)示意圖;圖4為實施例3提供的一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合具體實施例和附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。如圖I所示本發(fā)明提供的一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng),包括任務(wù)執(zhí)行單元I和任務(wù)調(diào)度單元2 ;所述任務(wù)執(zhí)行單元I包括執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù)模塊11,執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù)模塊12,執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù)模塊13 ;所述任務(wù)調(diào)度單元2包括任務(wù)執(zhí)行狀態(tài)控制模塊和優(yōu)先級處理模塊22 ;所述任務(wù)執(zhí)行狀態(tài)控制模塊由任務(wù)定時模塊或/和信號觸發(fā)模塊組成;所述I類任務(wù)模11塊依次與任務(wù)定時模塊A 211和優(yōu)先級處理模塊22串聯(lián)成一個閉合循環(huán)通路;所述II類任務(wù)模塊12依次與信號觸發(fā)模塊A 212和優(yōu)先級處理模塊22串聯(lián)成一個閉合循環(huán)通路;所述III類任務(wù)模塊13依次與相并聯(lián)的任務(wù)定時模塊B 213和信號觸發(fā)模塊B214及優(yōu)先級處理模塊22串聯(lián)成一個閉合循環(huán)通路,且在優(yōu)先級處理模塊22返回III類任務(wù)模塊13的循環(huán)通路中還設(shè)有靜態(tài)定時模塊23。所述的任務(wù)執(zhí)行單元是用于任務(wù)模塊中的任務(wù)或任務(wù)片段被調(diào)度單元激活后,運行指定激活的任務(wù)或任務(wù)片段,運行完成后,任務(wù)執(zhí)行單元將系統(tǒng)控制權(quán)交給任務(wù)調(diào)度單元。在同一時間,所述的任務(wù)執(zhí)行單元只能運行一個任務(wù)或任務(wù)片段。所述的任務(wù)調(diào)度單元是用于監(jiān)控任務(wù)或任務(wù)片段的執(zhí)行狀態(tài),一旦監(jiān)控到任務(wù)或任務(wù)片段就緒,即進(jìn)行優(yōu)先級識別,然后激活需優(yōu)先激活的任務(wù)或任務(wù)片段。
所述的任務(wù)定時模塊是用于控制所述任務(wù)或任務(wù)片段的執(zhí)行時間,當(dāng)任務(wù)或任務(wù)片段的執(zhí)行時間期滿,此任務(wù)或任務(wù)片段即進(jìn)入就緒狀態(tài),等待優(yōu)先級識別和激活。所述的信號觸發(fā)模塊是用于控制所述任務(wù)或任務(wù)片段等待信號,在信號到達(dá)后,使任務(wù)或任務(wù)片段進(jìn)入就緒狀態(tài),等待優(yōu)先級識別和激活。所述信號可以來自系統(tǒng)外部,也可以來自系統(tǒng)內(nèi)部。所述的優(yōu)先級處理模塊是用于識別任務(wù)或/和任務(wù)片段的優(yōu)先處理級別,每個任務(wù)被賦予一個優(yōu)先級,每個任務(wù)片段具有與對應(yīng)任務(wù)相同的優(yōu)先級;在已就緒的任務(wù)或/和任務(wù)片段中,擁有最高優(yōu)先級的任務(wù)或任務(wù)片段最先被調(diào)度單元激活,而擁有相同優(yōu)先級的任務(wù)或任務(wù)片段,依照任務(wù)創(chuàng)建的順序依次被激活。 所述的靜態(tài)定時模塊是用于控制執(zhí)行時間不固定任務(wù)的執(zhí)行周期,當(dāng)所述任務(wù)的執(zhí)行周期期滿,該任務(wù)即被激活運行。靜態(tài)定時模塊不受任務(wù)執(zhí)行時長的影響。使用本發(fā)明所述處理系統(tǒng)非搶占式實時調(diào)度多任務(wù)的處理方法,包括如下步驟①將所有任務(wù)劃分為如下3類任務(wù)執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù)11,執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù)12,執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù)13 ;②當(dāng)控制I類任務(wù)執(zhí)行狀態(tài)的定時模塊A 211監(jiān)控所述任務(wù)的執(zhí)行時間期滿,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊22的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制II類任務(wù)執(zhí)行狀態(tài)的信號觸發(fā)模塊A 212等到信號到達(dá),立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊22的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制III類任務(wù)執(zhí)行狀態(tài)的任務(wù)定時模塊B 213或信號觸發(fā)模塊B 214監(jiān)控到所述任務(wù)執(zhí)行完畢,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊22的優(yōu)先級識別和調(diào)度單元的激活;③每一個任務(wù)被賦予一個優(yōu)先級,優(yōu)先級處理模塊對接收到的已就緒任務(wù)進(jìn)行優(yōu)先級識別,擁有最高優(yōu)先級的任務(wù)最先被調(diào)度單元激活,而擁有相同優(yōu)先級的任務(wù),依照任務(wù)創(chuàng)建的順序依次被激活;④當(dāng)靜態(tài)定時模塊23監(jiān)控到執(zhí)行時間不固定任務(wù)的執(zhí)行周期期滿,該任務(wù)即被激活運行。例如若任務(wù)I排在任務(wù)2前面,當(dāng)任務(wù)I和任務(wù)2同時就緒時,按照傳統(tǒng)的非搶占式任務(wù)調(diào)度系統(tǒng),必須在任務(wù)I執(zhí)行完畢后,才會去執(zhí)行任務(wù)2,這樣就延長了任務(wù)2的響應(yīng)時間,可能造成信號來不及處理;而采用本發(fā)明所述系統(tǒng),可通過設(shè)置任務(wù)2的優(yōu)先級高于任務(wù)1,當(dāng)任務(wù)I和任務(wù)2同時就緒時,優(yōu)先級處理模塊會優(yōu)先激活任務(wù)2去執(zhí)行,這樣就可縮短系統(tǒng)的響應(yīng)時間,提高資源利用率。尤其是,對于執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù),由于執(zhí)行時間沒法固定,為了確保執(zhí)行周期的固定,本發(fā)明通過在循環(huán)通路中設(shè)置靜態(tài)定時模塊,由于靜態(tài)定時模塊不受任務(wù)執(zhí)行時長的影響,從而確保了該類任務(wù)執(zhí)行周期的固定。為了進(jìn)一步保障系統(tǒng)響應(yīng)快,滿足執(zhí)行時間短的任務(wù)實時性要求,可將執(zhí)行周期長的任務(wù)劃分成若干個執(zhí)行周期足夠短的相互串聯(lián)的任務(wù)片段模塊,每個任務(wù)片段模塊分別串聯(lián)有與其相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊;且每個任務(wù)片段的優(yōu)先級與對應(yīng)長任務(wù)的優(yōu)先級相同;每個任務(wù)片段的操作過程與對應(yīng)的I類任務(wù)、II類任務(wù)或III類任務(wù)的操作過程相同,但必須等片段一任務(wù)執(zhí)行完畢后才能進(jìn)行片段二任務(wù)的執(zhí)行,依此類推,即,任務(wù)片段間的執(zhí)行順序為依次串聯(lián)關(guān)系。實施例I假設(shè)任務(wù)執(zhí)行單元I當(dāng)前正在執(zhí)行的是I類任務(wù)11,而此任務(wù)是執(zhí)行周期長的任務(wù),這時候II類任務(wù)12的信號被觸發(fā),需要立即執(zhí)行,按照傳統(tǒng)的非搶占式任務(wù)調(diào)度系統(tǒng),必須在I類任務(wù)11執(zhí)行完畢后,才會去執(zhí)行II類任務(wù)12,這樣就不能實現(xiàn)實時處理II類任務(wù)12的要求;而采用圖2所示的處理系統(tǒng),通過將I類任務(wù)模塊11劃分為3個相互串聯(lián)的任務(wù)片段一模塊111、任務(wù)片段二模塊112和任務(wù)片段三模塊113,且任務(wù)片段一模塊111串聯(lián)有任務(wù)定時模塊A12111、任務(wù)片段二模塊112串聯(lián)有任務(wù)定時模塊A22112、任務(wù)片段三模塊113串聯(lián)有任務(wù)定時模塊A32113 ;任務(wù)片段一、任務(wù)片段二和任務(wù)片段三的優(yōu)先級與對應(yīng)I類任務(wù)的優(yōu)先級相同;當(dāng)任務(wù)定時模塊A12111監(jiān)控到任務(wù)片段一執(zhí)行周期期滿,就會立即使任務(wù)片段一處于就緒狀態(tài)被掛起,讓優(yōu)先級高的就緒任務(wù)先執(zhí)行。如果I類任務(wù)的執(zhí)行時長為15ms,在未分片段時,II類任務(wù)的響應(yīng)時間最長為15ms,而將I類任務(wù)分成3個片段,每個片段執(zhí)行時長各為5ms,這樣,II類任務(wù)的響應(yīng)時間最長為5ms,可見可大大縮短系統(tǒng)的響應(yīng)時間,滿足關(guān)鍵任務(wù)的實時性要求。 實施例2假設(shè)任務(wù)執(zhí)行單元I當(dāng)前正在執(zhí)行的是II類任務(wù)12,而此任務(wù)是執(zhí)行周期長的任務(wù),這時候優(yōu)先級高的I類任務(wù)11需要立即執(zhí)行,按照傳統(tǒng)的非搶占式任務(wù)調(diào)度系統(tǒng),必須在II類任務(wù)12執(zhí)行完畢后,才會去執(zhí)行I類任務(wù)11,這樣就不能實現(xiàn)實時處理I類任務(wù)11的要求;而采用圖3所示的處理系統(tǒng),通過將II類任務(wù)模塊12劃分為3個相互串聯(lián)的任務(wù)片段一模塊121、任務(wù)片段二模塊122和任務(wù)片段三模塊123,且任務(wù)片段一模塊121串聯(lián)有信號觸發(fā)模塊A12121、任務(wù)片段二模塊122串聯(lián)有信號觸發(fā)模塊A22122、任務(wù)片段三模塊123串聯(lián)有信號觸發(fā)模塊A32123 ;任務(wù)片段一、任務(wù)片段二和任務(wù)片段三的優(yōu)先級與對應(yīng)II類任務(wù)的優(yōu)先級相同;當(dāng)信號觸發(fā)模塊A12121接收到信號觸發(fā),就會立即使任務(wù)片段一處于就緒狀態(tài)被掛起,讓優(yōu)先級高的就緒任務(wù)先執(zhí)行。如果II類任務(wù)的執(zhí)行時長為15ms,在未分片段時,I類任務(wù)的響應(yīng)時間最長為15ms,而將II類任務(wù)分成3個片段,每個片段執(zhí)行時長各為5ms,這樣,I類任務(wù)的響應(yīng)時間最長為5ms,可見也可大大縮短系統(tǒng)的響應(yīng)時間,滿足關(guān)鍵任務(wù)的實時性要求。實施例3假設(shè)任務(wù)執(zhí)行單元I當(dāng)前正在執(zhí)行的是III類任務(wù)13,而此任務(wù)是執(zhí)行周期長的任務(wù),這時候優(yōu)先級高的I類任務(wù)11需要立即執(zhí)行,按照傳統(tǒng)的非搶占式任務(wù)調(diào)度系統(tǒng),必須在III類任務(wù)13執(zhí)行完畢后,才會去執(zhí)行I類任務(wù)11,這樣就不能實現(xiàn)實時處理I類任務(wù)11的要求;而采用圖4所示的處理系統(tǒng),通過將III類任務(wù)模塊13劃分為3個相互串聯(lián)的任務(wù)片段一模塊131、任務(wù)片段二模塊132和任務(wù)片段三模塊133,且任務(wù)片段一模塊131與相并聯(lián)的任務(wù)定時模塊B12131和信號觸發(fā)模塊B12141相串聯(lián)、任務(wù)片段二模塊132與相并聯(lián)的任務(wù)定時模塊B22132和信號觸發(fā)模塊B22142相串聯(lián)、任務(wù)片段三模塊133與相并聯(lián)的任務(wù)定時模塊B32133和彳目號觸發(fā)模塊B32143相串聯(lián);任務(wù)片段一、任務(wù)片段二和任務(wù)片段三的優(yōu)先級與對應(yīng)III類任務(wù)的優(yōu)先級相同;當(dāng)任務(wù)定時模塊B12131或信號觸發(fā)模塊BI監(jiān)控到任務(wù)片段一執(zhí)行完畢,就會立即使任務(wù)片段一處于就緒狀態(tài)被掛起,讓優(yōu)先級高的就緒任務(wù)先執(zhí)行。如果III類任務(wù)的執(zhí)行時長為15ms,在未分片段時,I類任務(wù)的響應(yīng)時間最長為15ms,而將III類任務(wù)分成3個片段,每個片段執(zhí)行時長各為5ms,這樣,I類任務(wù)的響應(yīng)時間最長為5ms,可見也可大大縮短系統(tǒng)的響應(yīng)時間,滿足關(guān)鍵任務(wù)的實時性要求。綜上所述可見本發(fā)明通過將包含多種不同特性的任務(wù)根據(jù)執(zhí)行周期和執(zhí)行時間的特性劃分為3大類,并對不同特性類別的任務(wù)給予相匹配的調(diào)度路徑和優(yōu)先級,從而縮短了系統(tǒng)的響應(yīng)時間,提高了資源利用率;另外,對于執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù),通過在循環(huán)通路中設(shè)置靜態(tài)定時模塊,可確保該類任務(wù)的執(zhí)行周期固定;尤其是,將執(zhí)行周期長的任務(wù)劃分為若干個執(zhí)行時 間短的任務(wù)片段,可進(jìn)一步提高系統(tǒng)的響應(yīng)速度,有效解決一些關(guān)鍵任務(wù)的實時性問題,能滿足電梯單片機的高效、低成本運行要求,具有實用價值。最后有必要在此說明的是以上實施例只用于對本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)說明,不能理解為對本發(fā)明保護(hù)范圍的限制,本領(lǐng)域的技術(shù)人員根據(jù)本發(fā)明的上述內(nèi)容做出的一些非本質(zhì)的改進(jìn)和調(diào)整均屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng),包括任務(wù)執(zhí)行單元和任務(wù)調(diào)度單元,所述任務(wù)執(zhí)行單元包括若干任務(wù)模塊,所述任務(wù)調(diào)度單元包括任務(wù)執(zhí)行狀態(tài)控制模塊和優(yōu)先級處理模塊;其特征在于所述任務(wù)執(zhí)行單元包括如下3類任務(wù)模塊,即,執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù)模塊,執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù)模塊,執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù)模塊;所述任務(wù)執(zhí)行狀態(tài)控制模塊由任務(wù)定時模塊或/和信號觸發(fā)模塊組成;所述I類任務(wù)模塊依次與任務(wù)定時模塊A和優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路;所述II類任務(wù)模塊依次與信號觸發(fā)模塊A和優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路;所述III類任務(wù)模塊依次與相并聯(lián)的任務(wù)定時模塊B和信號觸發(fā)模塊B及優(yōu)先級處理模塊串聯(lián)成一個閉合循環(huán)通路,且在優(yōu)先級處理模塊返回III類任務(wù)模塊的循環(huán)通路中還設(shè)有靜態(tài)定時模塊。
2.根據(jù)權(quán)利要求I所述的處理系統(tǒng),其特征在于將長任務(wù)模塊劃分為若干個相互串聯(lián)的任務(wù)片段模塊,每個任務(wù)片段模塊分別串聯(lián)有與其相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊。
3.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于與由I類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為任務(wù)定時模塊。
4.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于與由II類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為信號觸發(fā)模塊。
5.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于與由III類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為并聯(lián)的任務(wù)定時模塊和信號觸發(fā)模塊。
6.一種使用權(quán)利要求I所述的處理系統(tǒng)非搶占式實時調(diào)度多任務(wù)的處理方法,其特征在于,包括如下步驟 ①將所有任務(wù)劃分為如下3類任務(wù)執(zhí)行周期及執(zhí)行時間均固定的I類任務(wù),執(zhí)行周期及執(zhí)行時間均不固定的II類任務(wù),執(zhí)行周期固定但執(zhí)行時間不固定的III類任務(wù); ②當(dāng)控制I類任務(wù)執(zhí)行狀態(tài)的定時模塊A監(jiān)控所述任務(wù)的執(zhí)行時間期滿,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制II類任務(wù)執(zhí)行狀態(tài)的信號觸發(fā)模塊A等到信號到達(dá),立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活;當(dāng)控制III類任務(wù)執(zhí)行狀態(tài)的任務(wù)定時模塊B或信號觸發(fā)模塊B監(jiān)控到所述任務(wù)執(zhí)行完畢,立即使該任務(wù)處于就緒狀態(tài)被掛起,等待優(yōu)先級處理模塊的優(yōu)先級識別和調(diào)度單元的激活; ③每一個任務(wù)被賦予一個優(yōu)先級,優(yōu)先級處理模塊對接收到的已就緒任務(wù)進(jìn)行優(yōu)先級識別,擁有最高優(yōu)先級的任務(wù)最先被調(diào)度單元激活,而擁有相同優(yōu)先級的任務(wù),依照任務(wù)創(chuàng)建的順序依次被激活; ④當(dāng)靜態(tài)定時模塊監(jiān)控到執(zhí)行時間不固定任務(wù)的執(zhí)行周期期滿,該任務(wù)即被激活運行。
7.根據(jù)權(quán)利要求6所述的處理方法,其特征在于將執(zhí)行周期長的任務(wù)劃分為若干個相互串聯(lián)的任務(wù)片段,每個任務(wù)片段分別串聯(lián)有與其相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊,且每個任務(wù)片段的優(yōu)先級與對應(yīng)長任務(wù)的優(yōu)先級相同;每個任務(wù)片段的處理過程與對應(yīng)的I類任務(wù)、II類任務(wù)或III類任務(wù)的處理過程相同,但必須等片段一任務(wù)執(zhí)行完畢后才能進(jìn)行片段二任務(wù)的執(zhí)行,依此類推,即,任務(wù)片段間的執(zhí)行順序為依次串聯(lián)關(guān)系。
8.根據(jù)權(quán)利要求7所述的處理方法,其特征在于與由I類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為任務(wù)定時模塊。
9.根據(jù)權(quán)利要求7所述的處理方法,其特征在于與由II類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為信號觸發(fā)模塊。
10.根據(jù)權(quán)利要求7所述的處理方法,其特征在于與由III類長任務(wù)模塊劃分的每個任務(wù)片段模塊相匹配的任務(wù)執(zhí)行狀態(tài)控制模塊為并聯(lián)的任務(wù)定時模塊和信號觸發(fā)模塊。
全文摘要
本發(fā)明公開了一種非搶占式實時調(diào)度多任務(wù)的處理系統(tǒng)及方法,所述處理系統(tǒng)包括任務(wù)執(zhí)行單元和任務(wù)調(diào)度單元,所述任務(wù)執(zhí)行單元包括執(zhí)行周期及執(zhí)行時間均固定的Ⅰ類任務(wù)模塊,執(zhí)行周期及執(zhí)行時間均不固定的Ⅱ類任務(wù)模塊,執(zhí)行周期固定但執(zhí)行時間不固定的Ⅲ類任務(wù)模塊;所述任務(wù)調(diào)度單元包括任務(wù)執(zhí)行狀態(tài)控制模塊和優(yōu)先級處理模塊;所述任務(wù)執(zhí)行狀態(tài)控制模塊由任務(wù)定時模塊或/和信號觸發(fā)模塊組成。本發(fā)明可縮短系統(tǒng)的響應(yīng)時間,提高資源利用率,確保任務(wù)執(zhí)行周期的固定,有效解決一些關(guān)鍵任務(wù)的實時性問題,能滿足電梯單片機的高效、低成本運行要求,具有實用價值。
文檔編號G06F9/46GK102722402SQ20121016920
公開日2012年10月10日 申請日期2012年5月28日 優(yōu)先權(quán)日2012年5月28日
發(fā)明者洪浩, 王偉峰, 肖春 申請人:上海微頻萊機電科技有限公司