跳轉到內容

作業系統設計/併發/活鎖

來自華夏公益教科書,開放的書籍,開放的世界

活鎖類似於死鎖,不同之處在於參與活鎖的程序狀態不斷地相互改變,但沒有一個程序取得進展。活鎖是資源飢餓的一種特殊情況;一般定義只說明特定程序沒有取得進展。

現實世界中的例子是,兩個人在狹窄的走廊裡相遇,每個人都試圖禮貌地讓對方先走,結果卻左右搖擺,沒有取得進展,因為他們總是在同一時間以相同的方式移動。

活鎖是某些用於檢測和恢復死鎖的演算法的風險。如果多個程序採取行動,死鎖檢測演算法可能會反覆觸發。可以透過確保只有一個程序(隨機選擇或按優先順序選擇)採取行動來避免這種情況。

華夏公益教科書