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

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

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

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

有边就是死锁

例题一

在如下所示的进程资源图中,(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都阻塞,不可化简 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5709895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存