需要对银行家算法进行一些澄清

时间:2010-05-17 23:58:08

标签: revision bankers-algorithm

快速查询Dijkstra Banker's algorithm中的安全/不安全状态......

如果系统快照中的某个进程(例如下面的进程)已经满足了所有需求,并且没有足够的资源来满足任何其他进程的需求,那么系统是否在安全的状态?我知道通常我们假设一旦一个进程收到它所需的资源,它将很快终止并返回所有资源,但是当我们计算系统的状态时,这个假设会被考虑在内吗?

  Allocated        Maximum     Available

    | A | B         | A | B      A | B
 ---+---+---     ---+---+---    ---+---
 P1 | 1 | 2      P1 | 1 | 2      1 | 3
 P2 | 5 | 3      P2 | 7 | 8    

修改

只是为了让我的问题更清楚一点:上面例子中的系统处于安全状态还是不安全状态?我们是否假设来自P2的请求被延迟,直到P1返回资源,此时P2的请求可以被满足,因此系统是安全的,或者系统是不安全的,因为目前没有任何可能的请求可以满足?

1 个答案:

答案 0 :(得分:1)

系统处于安全状态,因为进程1可以运行。完成后,将有足够的资源A和资源B副本供进程2完成。因此,存在“调度”,系统可以使用该“调度”来完成其过程。这意味着它是安全的。