-2

使用银行家算法,

如果一个进程 (p1) 无法通过任何其他进程 p2、p3、p4 等单独放弃它的资源来完成,他们是否可以一起放弃他们的资源以便 p1 可以完成?

或者这不是一件可以做的事情吗?

4

1 回答 1

0

您是在询问抽象过程的能力,还是特别是银行家算法的能力?

如果它是抽象过程,那么是的,这很容易实现。创建一个信号yield_all,并对每个进程进行编码以在收到该信号时放弃资源。一些主进程必须将信号发送到 P2、P3 和 P4 中的每一个,然后允许 P1 继续分配。实现细节由设计者决定。


如果您要询问银行家的算法,我并不完全清楚您需要什么。除非系统仍处于 a 中,否则不允许进行分配safe state:每个进程都能够以某种顺序终止(从而返回所有资源),而剩余的系统可用性。

因此,在您描述的情况下,强制任何其他进程产生资源不是有效的操作。相反,P1 必须等到其他人正常终止后,才允许分配请求的资源。如果这不可能,那么系统处于unsafe state一个或多个先前的请求不应该被授予的状态。

这是否回答你的问题?

于 2017-12-06T17:57:12.133 回答