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

如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁 。这就是“死锁定理” 。
有边就是死锁
例题一
在如下所示的进程资源图中,(27);该进程资源图是(28) 。
(27)P1、P2是阻塞节点、P3是非阻塞节点
(28)可以化简的,其化简顺序为P3→P1→P2
解析:

先标记了分配给每个进程的资源数
R1=2-2=0 (注:第一个2是,两个圆点,第二个2,是两条线)
R2=3-3=0
R3=2-1=1

再算
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,所以,阻塞 )
【非阻塞进程资源图,化简,阻塞,死锁】都阻塞,不可化简