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

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

ID:13564365

大小:48.50 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2018-07-23

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

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

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

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

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

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

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

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

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

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

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