2011-06-06 116 views
5

我有問題,從文章的理解Priority Inversion優先級反轉

段:

考慮是有任務L,低優先級 。此任務需要資源 R.考慮到L正在運行,並且它 獲取資源R.現在,有另一個任務H,其中有高優先級 。 這個任務還需要資源R. 考慮L具有收購 資源R.現在H具有等到大號 放棄資源R.後H開始

一切都按預期達 這一點,但出現問題時,一個 新任務M在此期間以中等優先級 開始。 `由於R仍​​然使用 (L),H無法運行。因爲m 是優先級最高的暢通 任務,它會L. 之前安排由於L已被M搶佔,L 不能放棄R.那麼M將運行 ,直到它完成,則L將運行 - 在 最少達到可以放棄R的位置 然後H將運行。 因此,在上述場景中,優先級爲 的任務在優先級高於 的任務之前運行,有效地爲我們提供了 優先級反轉。

該問題與文章的第二部分有關。爲什麼具有H(較高)優先級的進程不能搶佔具有L(較低)優先級的進程,但是具有M(中等)優先級的進程可以搶先進入?即如果H自從R被使用時被阻止,爲什麼M不被阻塞?

+0

這味道就像做家庭作業。仍然是一個很好的問題。 – 2011-06-06 12:07:48

+1

不知道如何或爲什麼..但它不是... – 2011-06-06 12:10:19

回答

4

因爲M不需要資源R,所以它在L仍然有使用的時候能夠運行;另一方面,H不能運行,直到L能夠釋放R.

+0

謝謝,我知道我錯過了一些愚蠢的東西:) – 2011-06-06 12:10:48