-
優先級繼承
鎖定
- 中文名
- 優先級繼承
- 領 域
- 計算機
優先級繼承例子
考慮下例:
Job Name | Priority |
---|---|
H | High |
M | Medium |
L | Low |
假定L獲取到共享資源後,H申請該資源不得而被阻塞。優先級繼承協議把L的優先級升級到H的級別。M將不能搶先L因而M被阻塞。當L釋放資源後,恢復到低優先級並喚醒H。H有高優先級因而搶先了L的執行權。隨後M、L依次恢復執行。
優先級繼承作用
為了解決由於優先級翻轉引起的問題,Solaris和WinCE引入了優先級繼承的解決方法。優先級繼承也就是,高優先級進程TH在等待低優先級的線程TL繼承佔用的競爭資源時,為了使TH能夠儘快獲得調度運行,由操作系統把TL的優先級提高到TH的優先級,從而讓TL以TH的優先級參與調度,儘快讓TL執行並釋放調TH欲獲得的競爭資源,然後TL的優先級調整到繼承前的水平,此時TH可獲得競爭資源而繼續執行。
到了T3時刻,Thread1需要Thread3佔用的同步資源SYNCH1,操作系統檢測到這種情況後,就把Thread3的優先級提高到Thread1的優先級。此時處於可運行狀態的線程Thread2和Thread3中,Thread3的優先級大於Thread2的優先級,Thread3被調度執行
[1]
。
Thread3執行到T4時刻,釋放了同步資源SYNCH1,操作系統何時恢復了Thread3的優先級,Thread1獲得了同步資源SYNCH1,重新進入可執行隊列。處於可運行狀態的線程Thread1和Thread2中,Thread1的優先級大於Thread2的優先級,所以Thread1被調度執行。
上述機制,使優先級最高的Thread1獲得執行的時機提前。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:2次歷史版本
- 最近更新: fastwalk