解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略

解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略

ID:13564365

大?。?8.50 KB

頁數(shù):3頁

時間:2018-07-23

解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略_第1頁
解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略_第2頁
解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略_第3頁
資源描述:

《解決優(yōu)先級倒置問題的rtos優(yōu)先級調度策略》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、解決優(yōu)先級倒置問題的RTOS優(yōu)先級調度策略大多數(shù)商用實時操作系統(tǒng)(RTOS)均采用基于優(yōu)先級的搶先調度器,這些系統(tǒng)為每個任務分配唯一的優(yōu)先等級。調度器可以保證在所有等待運行的任務中,真正運行的總是具有最高優(yōu)先級的任務。為了滿足上述目標,調度器需要在執(zhí)行中搶先優(yōu)先級較低的任務。由于多個任務共享資源,調度器控制范圍以外的事件可以在必要的情況下阻止具有最高優(yōu)先級的準備就緒任務運行。如果出現(xiàn)這種情形,將有可能使任務錯過臨界期限(criticaldeadline),從而導致系統(tǒng)崩潰。優(yōu)先級倒置就是當具有最高優(yōu)先級的

2、準備就緒任務在應該運行卻無法執(zhí)行時所采用的一項應急措施。資源共享引發(fā)的問題在采用基于優(yōu)先級的調度器中,一旦兩個任務共享了資源(如存儲緩沖器),那么其中之一通常具有較高的優(yōu)先級。高優(yōu)先級的任務期望一旦準備就緒就能運行,但當高優(yōu)先級任務就緒,而低優(yōu)先級任務正在使用共享資源時,高優(yōu)先級任務必須等待,直到低優(yōu)先級任務完成對共享資源的操作。這時,我們稱高優(yōu)先級任務被掛起。如果高優(yōu)先級任務必須滿足臨界期限,那么還必須計算所有共享資源在最壞條件下的“鎖定時間(lockouttime)”,并在設計中加以考慮。如果累積的鎖

3、定時間過長,那么資源共享機制就必須重新設計。任務需要共享資源進行通信和數(shù)據(jù)處理,但這種多線程特性并不適用于實時或嵌入式系統(tǒng)。優(yōu)先級倒置技術當高優(yōu)先級任務掛起時,中優(yōu)先級的任務搶先了正在使用共享資源的低優(yōu)先級任務,因而真正的問題來自運行階段;如果高優(yōu)先級任務已準備就緒并等待運行,但中優(yōu)先級任務此刻正在運行,這時就出現(xiàn)了優(yōu)先級倒置問題。低優(yōu)先級任務L和高優(yōu)先級任務H共享了資源,在任務L占有資源之后不久,任務H就緒;但這時任務H必須等待任務L完成對共享資源的操作。在任務L完成對共享資源的操作之前,任務M也已就緒

4、并將搶先任務L運行。在任務M(也許還包括其他的中優(yōu)先級任務)運行時,系統(tǒng)中具有最高優(yōu)先級的任務H仍然保持掛起狀態(tài)。許多優(yōu)先級倒置都不會給系統(tǒng)帶來危害,最多只是延遲了馬上應該運行的任務。但偶爾也會出現(xiàn)系統(tǒng)關鍵優(yōu)先級的倒置,例如這種情形就出現(xiàn)在1997年7月的火星“拓荒者(MarsPathfinder)”探測任務中?!巴鼗恼摺笔菍鹦潜韺舆M行高分辨率拍照并將照片發(fā)回地球的小飛行器。“拓荒者”遭遇的問題并不出自登陸軟件,而來自登陸命令軟件。大量的任務通過很大的一塊共享內(nèi)存區(qū)進行通信,其中部分是低優(yōu)先級的天氣數(shù)據(jù)

5、任務,另一些則是具有高優(yōu)先級的信息總線管理任務。設計該軟件的噴氣推進實驗室(JPL)的工程人員建立了信號量(semaphore)機制對共享內(nèi)存區(qū)數(shù)據(jù)進行存取控制。大部分時間里,軟件都能無故障地運行;但有時在任務執(zhí)行中,一個較為嚴重的問題足以引發(fā)整個軟件重啟。當?shù)蛢?yōu)先級的天氣任務獲得信號量并對共享內(nèi)存區(qū)進行存取時,就產(chǎn)生一連串導致系統(tǒng)崩潰的事件序列。在這段時間中,高優(yōu)先級的總線管理任務也需要信號量,但不得不等待信號量的釋放(因為天氣任務正在使用該信號量)。此后不久,觸發(fā)了一條中斷,導致中優(yōu)先級的通信任務就緒

6、。通信任務無須對共享內(nèi)存區(qū)進行存取,但該任務的優(yōu)先級高于其他正在運行的任務。因此低優(yōu)先級的天氣任務將被搶先,并開始運行中優(yōu)先級的通信任務。中優(yōu)先級任務需要進行大量的處理,因此將占用相當長的時間。這期間,低優(yōu)先級的天氣任務仍然占據(jù)信號量,而高優(yōu)先級的總線管理任務則在等待信號量的釋放。由于高優(yōu)先級的任務相當重要,因此經(jīng)常會觸發(fā)一個監(jiān)控定時器。如果未觸發(fā)監(jiān)控定時器,系統(tǒng)將自動重啟。這樣的問題并不由RTOS的錯誤(如對信號量的錯誤操作)導致,相反,軟件展現(xiàn)了信號量和進程間通信的一個顯著特征。實際上,“拓荒者”的R

7、TOS支持可選的工作區(qū),而JPL的科學家根本就沒有實施這項功能。幸虧科學家們可以遠程操作工作區(qū)并完成任務。兩種優(yōu)先級倒置方案優(yōu)先級倒置研究獲得了兩種解決方案。第一種方案稱為優(yōu)先級繼承(priorityinheritance),該技術強令低優(yōu)先級的任務繼承與之共享資源并被掛起的任意高優(yōu)先級任務的優(yōu)先等級。一旦高優(yōu)先級任務開始掛起,即可實施優(yōu)先級繼承,直到資源釋放。這需要得到操作系統(tǒng)的大力支持。第二種解決方案稱為優(yōu)先級頂置(priorityceiling),該方案為每種資源都分配優(yōu)先級;調度器將該優(yōu)先級傳送至

8、任何存取資源的任務,而分配給資源的優(yōu)先級則為最高優(yōu)先級用戶的優(yōu)先級。一旦任務完成對該資源的操作,其優(yōu)先級恢復正常。優(yōu)先級頂置的一大特色就在于任務可以共享資源,并且只需簡單地改變資源的優(yōu)先級,因此就不再需要信號量。============================voidTaskA(void){...SetTaskPriority(RES_X_PRIO);//AccesssharedresourceX.SetTaskPri

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。