银行家算法流程

时间:2017-12-05 20:12:52

标签: algorithm operating-system bankers-algorithm

使用Bankers算法,

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

这会回答你的问题吗?