2012-11-29 91 views
1

我知道,一個圓形的請求可能會導致死鎖,但我想知道如果下面也將導致死鎖...資源分配圖的死鎖檢測

Resource Graph

我不清楚,但我也覺得如果「由於兩個或更多程序/過程兩者需要另一個在完成操作之前需要來自另一個的響應而失敗或無法進行」

這是否意味着如果過程2和過程4都需要R7,這將會造成僵局? (多個進程請求的資源R5和R4也一樣)

回答

1

最簡單的死鎖圖表是在圖片中使用符號時,兩個進程都需要相同的兩個資源。例如,如果在您的示例進程P2依賴於資源R5,則可能會發生死鎖。假設P2P4均請求R7R5,即P2R7P4R5。然後P2正在等待R5P4正在等待R7,也就是說,每個正在等待對方釋放一個鎖。這是一個最小的例子。

在你的情況下,沒有這種可能性,因爲兩個不同的進程永遠不會共享兩個資源。唯一有問題的是P4。如果存在與P2P7的爭用,那麼說,或者P4將首先執行(沒問題),否則先執行另一個進程,解鎖資源並允許執行P4(同樣沒有問題)。