優先順序反轉

在TSL機制中,可能存在優先順序反轉的問題。讓我們說有兩個合作進程:P1和P2。

P1的優先順序為2,而P2的優先順序為1,P1較早到達並由CPU調度。由於它是一個協作進程,並且希望在臨界區執行,因此它將通過將鎖變數設置為1來進入臨界區。

現在,P2到達就緒佇列。 P2的優先順序高於P1,因此根據優先順序調度,P2被調度並且P1被搶佔。 P2也是一個合作進程,並希望在臨界區內執行。

雖然,P1被搶佔,但它的鎖變數的值將顯示為1,因為P1沒有完成,它還沒有完成其臨界區。

P1需要完成臨界區,但根據調度演算法,CPU使用P2。 P2要在臨界區執行,但根據同步機制,臨界區是用P1。

這是一種鎖,其中每個進程既不執行也不完成。這種類型的鎖被稱為自旋鎖。

這與死鎖不同,因為它們不處於阻塞狀態。一個處於就緒狀態,另一個處於運行狀態,但兩者都沒有執行。


上一篇: 測試集鎖定機制 下一篇: 開啟可變或嚴格的交替方式