「火星探路者」與VxWorks優先順序反轉問題

2021-07-10 06:40:50 字數 1028 閱讀 1145

「火星探路者(mars pathfinder, mpf)」於2023年07月04日在火星表面著陸。在開始的幾天內工作穩定,並傳回大量資料,但是幾天後,「探路者」開始出現系統復位、資料丟失的現象。

經過研發人員的分析,最後得出結論,就是因為系統裡發生了優先順序反轉的問題。

其中有如下兩個任務需要互斥訪問共享資源「資訊匯流排」:

t1:匯流排管理任務,高優先順序(這裡用t1表示),負責在匯流排上放入或者取出各種資料,頻繁進行匯流排資料i/o,它被設計為最重要的任務,並且要保證能夠每隔一定的時間就可以操作匯流排。對匯流排的非同步訪問是通過互斥訊號量來保證的。

t6:資料收集任務,優先順序低(這裡用t6表示),它執行頻度不高,只向匯流排寫資料,並通過互斥訊號量將資料發布到「資訊匯流排」。

如果「資料收集任務 t6」持有訊號量期間,「匯流排管理任務 t1"就緒,並且也申請獲取訊號量,則匯流排管理任務阻塞,直到資料收集任務釋放訊號量。

這樣看起來會工作很好,當資料收集任務很快完成後,高優先順序的匯流排管理任務會很快得到執行。

但是,另有乙個需要較長時間執行的通訊任務(這裡用t3表示),其優先順序比t6高,比t1低,在很少情況下,如果通訊任務被中斷程式啟用,並且剛好在匯流排管理任務(t1)等待資料收集任務(t6)完成期間就緒,這樣t3將被系統排程,從而比它低優先順序的資料收集任務t6得不到執行,因而使最高優先順序的匯流排管理任務(t1)也無法執行,一直被阻塞在那裡。在經歷一定的時間後,看門狗觀測到「匯流排」沒有活動,將其解釋為嚴重錯誤,並使系統復位。

這個就是優先順序反轉。

解決的辦法:

vxworks中採用了優先順序繼承協議,當高優先順序任務需要低優先順序任務占用資源時,將低優先順序任務的優先順序提高到和高優先順序相同的級別,也就是低優先順序繼承了高優先順序任務的優先順序級別。

在上面的例子中,t6會繼承t1的優先級別,從而能保證t1一定比t3優先排程。在vxworks中,預設情況下該功能被關閉,所以就有可能發生優先順序反轉,也就導致了「火星探路者」中問題的發生。

另外還有乙個防止優先順序反轉的是優先順序天花板,不論是否阻塞了高優先順序任務,持有該協議的任務在執行期間,都被賦予優先順序天花板看作的優先順序,以使任務盡快完成操作。

探路者 貢獻分分配規則

評分宗旨 準時完成自己的任務得分高。評分核心 日均佔比。1組長將老師的任務盡可能公平的劃分為二十八份細小的任務。解釋 本組7個人,每週5次立會中根據情況選擇4次進行任務完成統計。2每個同學基礎得分為佔比七分之一。每個同學每天的任務佔比二十八分之一。3每次細分任務之後,組內成員各自選自己喜歡的任務完成...

今日之探路者必不會重蹈昔日之秦池

北京探路者旅遊用品 logo 山東臨朐縣秦池奪取標王情景 當年的秦池之名聲遠揚遍及大江南北,可它的倒下卻是因為一篇記者的文章 當然,秦池之敗亦絕非我們今天坐而論道這樣簡單 抱著對其敬畏的心態來回顧這段往事對我們今天會更有益處。央視的標王 愛多 孔府家宴 秦池 的隕落的確像曇花一現,而其中秦池的轟動最...

探路者 第五周立會報告7(總第33次)

探路者 組成員及各位部落格位址。1藺依銘 2張恩聚 3公尺赫 4徐劭斌 5賈雅傑 6吳雨丹 7代秋彤 本次會議master 代秋彤 要求1工作 要求2時間跨度 2017年11月23日13 30分 當日14 00分。共計30分。要求3地點 二食堂三樓麻辣香鍋對面 要求4立會內容 昨天的成績 1.文案美...