位階倒置

在系統任務調度的優先權模型中,一個高優先權的任務只能被一個更高優先權的任務所搶占。 有一個優先權較低的任務L,它需要用到資源R;有一個優先權較高的任務H,它也需要用到資源R。 但如果這時候插入一個中等優先權的任務M,問題就產生了。

在系統任務調度的優先權模型中,一個高優先權的任務只能被一個更高優先權的任務所搶占。
場景:
有一個優先權較低的任務L,它需要用到資源R;有一個優先權較高的任務H,它也需要用到資源R。那么,正常的來說,當L在運行的時候,且使用到了資源R,這樣當H啟動,就需要等待L釋放R。這時候低級優先任務對其影響程度很小,因為它將很快消耗掉高級與低級優先任務共享的資源。
但如果這時候插入一個中等優先權的任務M,問題就產生了。
在L占用資源R運行的時候,H啟動,在等待L釋放R的時候,任務M進來,這時候,L將會掛起,且不會釋放資源R。這樣M一直會一直運行到結束,M結束後,L才能釋放R,這時候H才可以運行。在這個順序中,一個中等優先權的任務跑在一個高優先權的任務之前,產生了‘位階倒置’,也叫優先權翻轉
解決辦法:
1. 優先權天花板
2.優先權繼承

相關詞條

熱門詞條

聯絡我們