进程资源图
技巧
R -> P,表示 资源分配给进程,这是 确定的
R <- P,表示 进程申请资源,但系统 不一定有资源 分配给该进程,所以是 不确定的
重要概念
非阻塞节点 和 阻塞节点
节点:即进程
系统资源数量,满足进程的需要,该进程为 非阻塞节点
系统资源数量,不满足进程的需要,该进程为 阻塞节点
可化简 和 非死锁
当部分 非阻塞节点,执行 并 释放资源 后,能使得 所有节点 都能 执行,就说该图是 可化简、非死锁;反之,为不可化简的、死锁的
题
在如下所示的进程资源图中,哪个说法正确()
A、P1、P2、P3都是非阻塞节点,该图可以化简,所以是非死锁的
B、P1、P2、P3都是阻塞节点,该图不可以化简,所以是死锁的
C、P1、P2是非阻塞节点,P3是阻塞节点,该图不可以化简,所以是死锁的
D、P2是阻塞节点,P1、P3是非阻塞节点,该图可以化简,所以是非死锁的
分析
先执行 确定的,即:R -> P 资源分配给进程
将分配的资源划掉,如下图:
从上图可知:R1 资源已经分配完了,无法分配给 P2
结论:P2 是 阻塞节点
分析第二步
执行 不确定的,即:R <- P,进程申请资源,但系统 不一定有资源
从上图可知:资源 R2 还剩1个,P1 和 P3 都申请 R2,看上去资源不够分配
其实,P1 和 P3 无论哪个进程申请到资源,执行并释放资源后,都满足另一个进程执行
结论:P1 和 P3 是 非阻塞节点
分析第三步
P1 和 P3 是 执行并 释放资源 后,能够满足 P2 执行
结论: 所有节点都可执行,所以该图是 可化简、非死锁
参考:
https://blog.csdn.net/qq_71654538/article/details/132819749



