2011-02-23 61 views
0

N個進程共享可以保留的M個資源單元,並且一次只能釋放一個。每個過程的最大需求不超過M,所有最大需求的總和小於M + N。系統中會發生死鎖嗎?如何判斷這個系統是否會發生死鎖?

+2

聽起來像家庭作業。通常的答案適用於:42 – 2011-02-23 14:29:35

+1

得到這個:在SO中,人們可以幫助你處理你的功課。但要求真正爲你做到這一點是無禮的 – 2011-02-23 14:31:59

回答

1

你所描述的一樣semaphores

關於你的最後一個問題看起來系統:YES。你「可能」總是會陷入僵局;如果你看不到如何,問一個年輕/可恥的/有動力/偏差的開發者。

一個很好的方法來做一個好的方法;是有奇怪的鎖定/釋放資源規則。例如,如果一個進程需要M個資源來執行任務,他可以立即鎖定其中的一半,然後在做任何事之前等待另一半可用。

我認爲,只有在完成任務後,他纔會放棄,直到擁有了寶貴的M資源並釋放它們。

單個進程不會引起太多問題,但會有多個問題,因爲它們將鎖定超過M個總資源,並且需要更多的資源才能解決此凍結狀態。

相關問題