快速查询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的请求可以被满足,因此系统是安全的,或者系统是不安全的,因为目前没有任何可能的请求可以满足?
答案 0 :(得分:1)
系统处于安全状态,因为进程1可以运行。完成后,将有足够的资源A和资源B副本供进程2完成。因此,存在“调度”,系统可以使用该“调度”来完成其过程。这意味着它是安全的。