UCOSii如何解決優先級反轉

優先級反轉時如何產生的:

當出現低優先級的任務與高優先級的任務使用同一信號量,而系統中還存在其他中等優先級別的任務時,如果低優先級的任務先獲得了信號量,就會使高優先級的任務處於等待狀態,而那些不使用該信號量的中等任務卻可剝奪低優先級的任務的CPU使用權而先於高優先級的任務而運行了。

解決辦法:

  使獲得信號量任務的優先級別在使用共享資源期間暫時提升到所有任務最高優先級的高一個級別上,使得不被其他任務打斷,從而能儘快地使用完共享資源並釋放信號量,然後在釋放信號量之後,再恢復該任務原來的優先級。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章