優先權繼承

優先權繼承實時計算中去除優先權翻轉的一種方法。進程調度算法對獲取到臨界資源的進程(A)增加其優先權為所有等待該資源的進程中的最高優先權。 一旦進程(A)釋放了該資源,就恢復到原來的優先權。

基本介紹

  • 中文名:優先權繼承
  • 領域:計算機
例子,作用,

例子

考慮下例:
Job NamePriority
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可獲得競爭資源而繼續執行。
有了優先權繼承之後的上述現象的執行情況如圖1所示。
圖1圖1
圖二中,到了T3時刻,Thread1需要Thread3占用的同步資源SYNCH1,作業系統檢測到這種情況後,就把Thread3的優先權提高到Thread1的優先權。此時處於可運行狀態的執行緒Thread2和Thread3中,Thread3的優先權大於Thread2的優先權,Thread3被調度執行。
Thread3執行到T4時刻,釋放了同步資源SYNCH1,作業系統何時恢復了Thread3的優先權,Thread1獲得了同步資源SYNCH1,重新進入可執行佇列。處於可運行狀態的執行緒Thread1和Thread2中,Thread1的優先權大於Thread2的優先權,所以Thread1被調度執行。
上述機制,使優先權最高的Thread1獲得執行的時機提前。

相關詞條

熱門詞條

聯絡我們