專利名稱:基于contract的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式實時操作系統(tǒng)對資源的的調(diào)度機制,尤其是一種基于contract 的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法。
背景技術(shù):
Contract模型是應(yīng)用層和調(diào)度層之間的接口,它提出了一個較高層的抽象,使開發(fā)者只需要制定應(yīng)用程序的需要,而不需要把這些需求和特定的調(diào)度算法的參數(shù)相關(guān)聯(lián)起來。AUTOSAR(AOTomotive Open System Architecture)是一個標(biāo)準(zhǔn)化的開放式汽車軟件架構(gòu)。AUTOSAR OS是符合AUTOSAR標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng),是一個靜態(tài)配置的多任務(wù)單處理器的RT0S。本發(fā)明所參照的AUTOSAR標(biāo)準(zhǔn)為3. 0. 1版本,并且實現(xiàn)在由浙江大學(xué)自主研發(fā)的符合AUTOSAR標(biāo)準(zhǔn)的OS-SmartOSEK OS上。在實時系統(tǒng)領(lǐng)域,傳統(tǒng)理念認(rèn)為RTOS只需要滿足汽車功能需求說明書規(guī)定的時間需求即可。事實上,在現(xiàn)如今較多的場合下,RTOS中軟實時的task比硬實時的task要常見的多。此外,隨著在汽車領(lǐng)域用到的微處理器的處理能力的不斷提升,滿足那些時間需求變得相對容易。然而由于越來越多的功能單元被集成到一個處理器上,對于處理器資源的劃分問題變得越來越重要。所以,目前大多數(shù)AUTOSAR OS實現(xiàn)過程中,開發(fā)者為了避免不同的task間因為資源占用的問題相互沖突,在配置時每個task都只能申請最小的資源。在這樣的配置前提下,對于處理器資源的整體利用率會比較低。在引進(jìn)contract模型之后,就可以把幾個任務(wù)指派到一個contract上,這樣contract和contract之間就可以通過協(xié)商的形式來動態(tài)的回收空閑的處理器資源并且分配到比較忙的contract對應(yīng)的server上, 從而提高RTOS的資源調(diào)度的靈活性及利用率。在現(xiàn)在的實時操作系統(tǒng)中,存在如下問題由于要把多個功能模塊映射到一個處理器執(zhí)行,為不使各功能模塊相應(yīng)的task起沖突,需要降低每個task的資源占用量,因而導(dǎo)致整個處理器資源利用率的下降。
發(fā)明內(nèi)容
本發(fā)明的目的正是要解決上述技術(shù)存在的不足,而提供一種基于contract的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法,基于contract的方法用來提高嵌入式實時操作系統(tǒng)靈活性和對資源的利用率。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案一般的AUTOSAR OS是靜態(tài)配置的,這種基于contract的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法把contract模型應(yīng)用到AUTOSAR OS上,使AUTOSAR OS對于用戶提出的復(fù)雜的時間需求更加容易滿足,與此同時引入contract模型之后,還可以使AUTOSAR OS支持動態(tài)變化的時間需求。在原來的AUTOSAR OS軟件平臺結(jié)構(gòu)上增加一層抽象層,該抽象層由四個模塊構(gòu)成,分別為核心模塊core、動態(tài)回收模塊Dynamic reclamation,分層調(diào)度模塊Hierarchical scheduling 禾口倉泛;ΟΛ 牛莫雙 Spare capacity sharing ;
(1)、通過核心模塊指定contract的屬性和相關(guān)的操作,Contract的屬性就是一些參數(shù),用于創(chuàng)建contract,進(jìn)行contract之間的協(xié)商,綁定task到server以及RTOS用來保證最小資源需求的資源預(yù)留機制;
(2)、動態(tài)回收模塊是一個功能模塊,通過動態(tài)回收模塊在系統(tǒng)存在空閑處理器能力時執(zhí)行動態(tài)回收,通過空閑能力共享模塊分配那些server沒有使用的掛起的空閑處理器能力;如果在運行時,由于task的異常終止或是在調(diào)度點之前完成而產(chǎn)生了額外的空閑處理器能力,根據(jù)contract的配置,通過動態(tài)回收和空閑能力共享兩個模塊的合作,這些空閑的處理能力會被分配到那些需要額外的處理能力的不同的server上。(3)、通過分層調(diào)度模塊進(jìn)行全局調(diào)度和局部調(diào)度,分層調(diào)度主要發(fā)生在兩個層面——全局調(diào)度和局部調(diào)度。如附圖2所示,全局調(diào)度用于決定哪個server能夠訪問處理器資源,而局部調(diào)度是在server內(nèi)部的調(diào)度,用于決定調(diào)度哪個task進(jìn)行執(zhí)行。在本發(fā)明中,該方法能夠把幾個task指派到某個contract,配置contract的屬性,這些contract的屬性包括了創(chuàng)建contract、contract之間的協(xié)商、綁定task到server 以及資源預(yù)留機制的相應(yīng)參數(shù)。通過資源預(yù)留機制來保證AUT0SAR OS的最小化資源需求, 通過contract協(xié)商和再協(xié)商機制(線上和線下的可調(diào)度性分析)來保證OS任務(wù)的可調(diào)度性。在本發(fā)明中,該方法引入了 contract模型,每多個task對應(yīng)于一個contract,對于每個contract的調(diào)度策略進(jìn)行配置。這樣用戶就能夠從目前實現(xiàn)的眾多高級的實時調(diào)度算法中選擇最合適的調(diào)度策略來滿足自己的需求,可以實現(xiàn)對不同的task指定不同的調(diào)度策略。作為優(yōu)選,當(dāng)contracts準(zhǔn)備就緒之后,這些contracts需要進(jìn)行協(xié)商,評價其能否通過可調(diào)度性測試,系統(tǒng)會檢查在保證先前已有contracts正常運行的情況下,是否有足夠的資源滿足新添加的contract的最小資源需求;如果協(xié)商通過,系統(tǒng)會保留足夠的資源預(yù)算來滿足新添加的contract的最小資源需求,同時會新建一個對應(yīng)contract的 server, server是contract在系統(tǒng)運行狀態(tài)下的軟件對象,它存儲了 contract的所有信息;server會對綁定到它上面的task的執(zhí)行條件進(jìn)行管理,只要task被綁定到了某一 server上面,那么分層調(diào)度器就會調(diào)度其執(zhí)行。在附圖2中,全局調(diào)度器為基于sporadic server的固定優(yōu)先級調(diào)度(FP),而局部調(diào)度器有三個,實現(xiàn)的算法分別為EDF,F(xiàn)P和FIFO。本發(fā)明與現(xiàn)有技術(shù)相比,有益的效果是
1.基于contract模型,能夠滿足用戶復(fù)雜的時間需求。2.通過資源預(yù)留和線上/線下可調(diào)度性分析保證系統(tǒng)的最小資源需求和可調(diào)度性。3.通過回收和重分配空閑處理器能力獲得較優(yōu)的資源利用率。4.用戶可以自由選擇最合適的調(diào)度算法來調(diào)度相應(yīng)的tasks。
圖1是應(yīng)用本發(fā)明之前的SmartSAR軟件平臺架構(gòu)示意圖; 圖2是分層調(diào)度模型示意圖;圖3是應(yīng)用本發(fā)明之后的SmartSAR軟件平臺架構(gòu); 圖4是SmartOSEK OS中task的執(zhí)行過程。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明
本發(fā)明在浙大自主研發(fā)的符合AUT0SAR標(biāo)準(zhǔn)的RTOS——SmartOSEK OS上得到了實現(xiàn)。SmartOSEK OS和SmartSAR軟件平臺的其他模塊緊密相連,在沒有引入本發(fā)明之前, SmartSAR的軟件平臺架構(gòu)如附圖1所示,在引入本發(fā)明之后,在SmartOSEK OS模塊內(nèi)增加了另外一個子模塊如附圖3所示。在引入本發(fā)明到SmartOSEK之后,定義的數(shù)據(jù)結(jié)構(gòu)如下
表1. contract結(jié)構(gòu)的屬性
權(quán)利要求
1.一種基于contract的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法,其特征在于在原來的AUTOSAR OS軟件平臺結(jié)構(gòu)上增加一層抽象層,該抽象層由四個模塊構(gòu)成, 分別為核心模塊core、動態(tài)回收模塊Dynamic reclamation、分層調(diào)度模塊Hierarchical scheduling 禾口空閑能力共享模塊 Spare capacity sharing ;(1)、通過核心模塊指定contract的屬性和相關(guān)的操作,Contract的屬性就是一些參數(shù),用于創(chuàng)建contract,進(jìn)行contract之間的協(xié)商,綁定task到server以及RTOS用來保證最小資源需求的資源預(yù)留機制;(2)、通過動態(tài)回收模塊在系統(tǒng)存在空閑處理器能力時執(zhí)行動態(tài)回收,通過空閑能力共享模塊分配那些server沒有使用的掛起的空閑處理器能力;如果在運行時,由于task的異常終止或是在調(diào)度點之前完成而產(chǎn)生了額外的空閑處理器能力,這些空閑的處理能力會根據(jù)contract中指定的方法被分配到需要處理器能力的不同的server上去;(3)、通過分層調(diào)度模塊進(jìn)行全局調(diào)度和局部調(diào)度,全局調(diào)度用于決定哪個server能夠訪問處理器資源,而局部調(diào)度是在server內(nèi)部的調(diào)度,用于決定調(diào)度哪個task進(jìn)行執(zhí)行。
2.根據(jù)權(quán)利要求1所述的基于contract的提高AUTOSAROS調(diào)度靈活性和資源利用率的方法,其特征在于該方法引入了 contract模型,每多個task對應(yīng)于一個contract,對于每個contract的調(diào)度策略進(jìn)行配置。
3.根據(jù)權(quán)利要求1所述的基于contract的提高AUTOSAROS調(diào)度靈活性和資源利用率的方法,其特征在于當(dāng)contracts準(zhǔn)備就緒之后,這些contracts需要進(jìn)行協(xié)商,評價其能否通過可調(diào)度性測試,系統(tǒng)會檢查在保證先前已有contracts正常運行的情況下,是否有足夠的資源滿足新添加的contract的最小資源需求;如果協(xié)商通過,系統(tǒng)會保留足夠的資源預(yù)算來滿足新添加的contract的最小資源需求,同時會新建一個對應(yīng)contract 的server,server是contract在系統(tǒng)運行狀態(tài)下的軟件對象,它存儲了 contract的所有信息;server會對綁定到它上面的task的執(zhí)行條件進(jìn)行管理,只要task被綁定到了某一 server上面,那么分層調(diào)度器就會調(diào)度其執(zhí)行。
全文摘要
本發(fā)明涉及一種基于contract的提高AUTOSAR OS調(diào)度靈活性和資源利用率的方法,在原來的AUTOSAR OS軟件平臺結(jié)構(gòu)上增加一層抽象層,該抽象層由四個模塊構(gòu)成,分別為核心模塊core、動態(tài)回收模塊Dynamicreclamation、分層調(diào)度模塊Hierarchicalscheduling和空閑能力共享模塊Sparecapacitysharing;該方法把contract模型應(yīng)用到AUTOSAR OS上,使AUTOSAR OS對于用戶提出的復(fù)雜的時間需求更加容易滿足,與此同時引入contract模型之后,還可以使AUTOSAR OS支持動態(tài)變化的時間需求。本發(fā)明與現(xiàn)有技術(shù)相比,有益的效果是1.基于contract模型,能夠滿足用戶復(fù)雜的時間需求。2.通過資源預(yù)留和線上/線下可調(diào)度性分析保證系統(tǒng)的最小資源需求和可調(diào)度性。3.通過回收和重分配空閑處理器能力獲得較優(yōu)的資源利用率。4.用戶可以自由選擇最合適的調(diào)度算法來調(diào)度相應(yīng)的tasks。
文檔編號G06F9/50GK102306112SQ20111023020
公開日2012年1月4日 申請日期2011年8月11日 優(yōu)先權(quán)日2011年8月11日
發(fā)明者張成碩, 李紅, 王旭陽, 陳浩杰, 顧宗華 申請人:浙江大學(xué)