嵌入式系統優先級反轉問題分析
2025年05月09日 16:18:42
來源:廣州市克魯茲電子科技有限公司 >> 進入該公司展臺
閱讀量:6
優先級反轉發生在一個高優先級的任務被迫等待一段不確定時間,等待一個低優先級任務先完成。圖1中3個任務分別為task1、task2和task3,其優先級由高到低。從圖1可知,當task3占有由信號量(semaphore)保護的某種共享資源而進入臨界區執行時,task1就緒,由于系統可搶占式PBP(Priority Based Preemptive)調度策略,因此task1搶占task3執行。task1執行一段時間后也進入臨界區,但此時task3仍占有此臨界資源的信號量,task1被阻塞,等待task3釋放此信號量。在經過這么一段時間后,task2已處于就緒狀態,于是系統調度task2執行。如果task3在task2的執行期間一直沒有能夠被調度執行的話,那task1和task3將一直等到task2執行完后才能執行,task1更要等到task3釋放它所占有的信號量才能執行;如果這段時間超出task1的Deadline,task1的調度出現了問題,此時輕則任務被長時間阻塞,重則造成系統崩潰。優先級反轉原因可歸納為:高優先級的任務task1由于要等待被低優先級任務task3占有的臨界資源而被task2阻塞,而此時具有中優先級的任務task2搶占了task3的CPU時間,導致task2先于task1執行。此類優先級反轉問題的解決方法大致有2種:一種被稱作優先級繼承(priority inheritance);另一種被稱作優先級極限(priority ceilings)。下面介紹本文所遇到的優先級反轉問題。
版權與免責聲明:
1.凡本網注明"來源:歐亞貿易網"的所有作品,版權均屬于歐亞貿易網,轉載請必須注明歐亞貿易網。違反者本網將追究相關法律責任。
2.企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
3.本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
4.如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系。