-6

我對Dijkstra銀行家算法問題的答案有疑問(問題在下面的屏幕截圖中提供)。銀行家算法

我認爲這個問題的答案應該是「是的,有可能做到這一點」。我的想法是,一旦用戶1完成,我們可以將他彈出並釋放他所請求的資源(10個A和5個B),並將他使用的資源返回到可用資源池,這將有助於完成其他資源。

相反,答案(在問題底下的屏幕截圖中)指出這是不可能的。我哪裏做錯了?爲什麼答案是不可能的?

enter image description here

答: enter image description here

+1

如果您用自己的話重新編寫了問題,我寧可選擇。另外,請不要標記無關標籤。這與Java或C無關。 –

+1

你想從我們這裏得到什麼?要查看您的屏幕截圖...? –

+0

你的問題是什麼(除了家庭作業)? – Aboutblank

回答

2

我認爲這只是一個措辭不當的問題。問題描述指出可用資源是A = 10B = 15

在銀行家算法中,如果一個進程可以分配它所需的最大資源,它就被認爲是「安全的」。 (過程1需要10個A和5個B)

然後答案顯示可用資源是A = 1B = 2。如果你看一下所有的進程當前分配的數字:

過程1了2個資源
過程2了3個資源
過程3了2個資源
過程4了2個資源
---- -----------------------
total A正在使用的資源= 9

很明顯,這個問題意味着那些是Total System資源,而不是當前可用的資源。因此,9個資源正在使用,進程1需要最多10個(它有2個),所以它需要8個;在這種情況下答案是否定的,這是不安全的。