进程资源图,化简,阻塞(非阻塞),死锁

如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是“死锁定理”。

有边就是死锁

例题一

在如下所示的进程资源图中,(27);该进程资源图是(28)。

(27)P1、P2是阻塞节点、P3是非阻塞节点

(28)可以化简的,其化简顺序为P3→P1→P2

解析:

先标记了R1R2R3分配给每个进程的资源数

R1=2-2=0 (注:第一个2是,两个圆点,第二个2,是两条线)

R2=3-3=0

R3=2-1=1

再算P1P2P3

P1=1 (注:一条线)

P1 → R2 阻塞 (因,R2=0)

P2=1

P2 → R1 阻塞 (因,R1=0)

P3=1

P3 → R3 非阻塞(因,R3=1)

所以,P1、P2是阻塞节点、P3是非阻塞节点

非阻塞节点(P3)的所有边去掉然后将它视为一个孤立的点

所有的资源和进程都变成孤立的。这样的图就叫做“可完全简化”。

R1=2-1=1

R2=3-2=1

R3=2-1=1

P1=1 (注:一条线)

P1 → R2 非阻塞(因,R2=1)

P2=1

P2 → R1 非阻塞 (因,R1=1)

非阻塞节点(P1P2)的的所有边去掉然后将它视为一个孤立的点

 

所以,可以化简
顺序为P3——P1——P2

例题二

假设系统中有三个进程 P1、P2 和 P3,两种资源 R1、R2。如果进程资源图 如图①和图②所示,那么( )。

图①可化简,图②不可化简 

解析:

图①

 

R1=3-2=1

R2=3-3=0

P1=0非阻塞

P2=2  ( P2 → R1,因R1=1,P2=2,R1-P2=1-2=-1,所以,阻塞 )

P3=1  ( P3 → R2,因R2=0,P3=1,R2-P3=0-1=-1,所以,阻塞 )

去掉非阻塞节点(P1)的所有

 

R1=3-1=2

R2=3-2=1

P1已去掉

P2=2  ( P2 → R1,因R1=2,P2=2,R1-P2=2-2=0,所以,非阻塞 )

P3=1  ( P3 → R2,因R2=1,P3=1,R2-P3=1-1=0,所以,非阻塞 )

去掉非阻塞节点(P2P3)的所有

化简顺序为:P1 → P2 → P3

图②

 

R1=3-3=0

R2=2-2=0

P1=1 ( P1 → R2,因R2=0,R2-P1=0-1=-1,所以,阻塞 )

P2=1  ( P2 → R1,因R1=0,R1-P2=0-1=-1,所以,阻塞 )

P3=1  ( P3 → R2,因R2=0,R2-P3=0-1=-1,所以,阻塞 )

P1P2P3都阻塞,不可化简 

### 使用资源分配图化简法检测操作系统中死锁的存在 在操作系统的上下文中,资源分配图是一种用于描述进程与资源之间关系的图形工具。为了判断系统是否处于死锁状态,可以采用资源分配图化简的方法。 当一个资源分配图能够被完全简化至所有节点成为孤立点时,则说明当前不存在任何死锁状况;相反地,如果无法实现这种彻底的简化——即存在至少一条边未能消除,那么就意味着有死锁现象的发生[^1]。 具体来说,在执行化简的过程中会遵循一定的规则: - 寻找那些既不是等待也不是孤立的状态下的进程节点 \(P_i\); - 假设这些选定的进程顺利完成并释放其所占用的一切资源; - 这样做之后可能会使得某些原本因为缺乏所需资源而停滞不前的其他进程得以继续前进; - 继续重复上述过程直到整个图表要么变得全为空白(意味着无死锁),要么剩下一些相互依赖形成循环链路的部分(表明出现了死锁)[^3]。 #### 实际案例分析 考虑这样一个场景:假设有三个进程 P0, P1 和 P2 同时请求两种类型的独占型资源 R1 (数量有限制) 及R2 。初始状态下各进程已持有部分资源,并向剩余可用资源发出申请。此时形成的资源分配图为: ``` P0 ----> [R1] | --> [R2] [R1] <-- P1 | v [R2] <- P2 ``` 在这个例子中,可以看到形成了闭合回路 `P0 -> R1 -> P1 -> R2 -> P2 -> R1` ,这构成了典型的环形结构,暗示着潜在的死锁风险。按照前述提到的化简原则尝试移除任意一边均不可能打破此闭环,故确认确实发生了死锁事件[^2]。 ```plaintext // 图形表示 P0 ----> [R1] | \ / v / [R2] [P1] <--------/ ^ / |_________/ P2 ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值