对银行家算法的误解?

Misunderstanding bankers algorithm?

我想了解银行家算法的工作原理。我有一个关于它如何在我的大学幻灯片上工作的例子,但我不确定为什么跳过了其中一个过程(在我的例子中 P4)。这个时候不应该这样查吗?我是不是误会了什么?

 P4 [3,2,2,3] <= [4,4,2,3]

我的回答:

大学幻灯片的答案:

你说得对,它应该是序列的一部分,它会的。看起来你的大学幻灯片只显示了银行算法的第一步。这就是为什么 P3 之后有一个逗号(幻灯片的屏幕截图):

正如您已经注意到的,一旦 P3 完成,系统将有足够的资源提供给 P4,因为可用性向量将更新如下:

A B C D
Available 3+1 3+1 0+2 2+1

P4需要的是如下:

你显然可以继续这个序列,因为在 P4 完成后,P0 可能会请求资源并获得批准等等。