死锁相关习题2 3道 附详解

6

某系统有R1,R2和R3共三种资源,在T0时刻P1,P2,P3和P4这四个进程对资源的占用和
需求情况见下表,此时系统的可用资源向量为(2,1,2)。试问:

  1. 系统是否处于安全状态?若安全,则请给出一个安全序列。
  2. 若此时进程P1和进程P2均发出资源请求向量Request(1,0,1),为了保证系统的安全
    性,应如何分配资源给这两个进程?说明所采用策略的原因。
  3. 若2中两个请求立即得到满足后,系统此刻是否处于死锁状态?
    ![[Pasted image 20241121221705.png]]

Available = 2,1,2
Need
P1:2,2,2
P2:2,0,2
P3:1,0,3
P4:4,2,0
初始可用资源work=2,1,2
检查安全序列
找可执行进程
P1:2,2,2>=2,1,2,NO
P2:2,0,2<=2,1,2,YES
执行P2,释放资源
work=2,1,2+4,1,1=6,2,3
找可执行进程
P3:1,0,3<=6,2,3
执行P3,释放资源
work=2,1,1+6,2,3=8,3,4
执行P4。释放资源
work=0,0,2+8,3,4=8,3,6
执行P1,释放资源
work=1,0,0+8,3,6=9,3,6
P2->P3->P4->P1
2.
若此时P1发出资源请求Request1(1,0,1),则按银行家算法进行检查
Request1(1,0,1) <=Need1(2,2,2)
Request1(1,0,1) <=Available(2,1,2)

AllocationNeedAvailable
P12,0,11,2,11,1,1
P24,1,12,0,21,1,1
P32,1,11,0,31,1,1
P40,0,24.2.01,1,1
再利用安全性算法检查系统是否安全,可用资源1,1,1已经不能满足任何进程,系统进入不安全状态,此时系统不能将资源分配给P1

若此时进程P2发出资源请求Request2(1,0,1)
Request2(1,0,1) <=Need1(2,0,2)
Request2(1,0,1) <=Available(2,1,2)

AllocationNeedAvailable
P11,0,02,2,21,1,1
P25,1,21,0,11,1,1
P32,1,11,0,31,1,1
P40,0,24.2.01,1,1
再利用安全性算法检查系统是否安全
WorkNeedAllocationWork+Allocation
P21,1,11,0,15,1,26,2,3
P36,2,31,0,32,1,18,3,4
P48,3,44,2,00,0,28,3,6
P18,3,62,2,21,0,09,3,6
存在安全序列:P2->P3->P4->P1,因此该状态是安全的,可以立即将进程P2所申请的资源分配给它

若2中的两个请求立即得到满足,则此刻系统并未立即进入死锁状态,因为这时所有的进程未提出新的资源申请,全部进程均未因资源请求没有得到满足而进入阻塞状态。
只有当进程提出资源申请且全部进程进入阻塞态时,系统才会处于死锁状态

7

![[Pasted image 20241121221733.png]]

使用银行家算法回答下面的问题:

  1. Need矩阵是怎样的?
  2. 系统是否处于安全状态?如安全,请给出一个安全序列。
  3. 若从进程P发来一个请求(0,4,2,0),这个请求能否立刻被满足?如安全,请给出一
    个安全序列。

Need = Max - Allocation =
P0 = 0,0,0,0
P1 = 0,7,5,0
P2 = 1,0,0,2
P3 = 0,6,4,2
2.
Work = 1,5,2,0

WorkNeedAllocationWork+Allocation
P01,5,2,00,0,0,00,0,1,21,5,3,2
P11,5,3,21,0,0,21,3,5,42,8,8,6
P22,8,8,60,7,5,01,0,0,03,8,8,6
P33,8,8,60,6,4,20,0,1,43,8,9,10
因为存在P0->P2->P1->P3,系统处于安全状态

Request1(0,4,2,0)<Need1(0,7,5,0)
Request1(0,4,2,0)<Acailable(1,5,2,0)
假设先满足,Available = 1,1,0,0

WorkNeedAllocationWork+Allocation
P01,1,0,00,0,0,00,0,1,21,1,1,2
P21,1,1,21,0,0,21,3,5,42,4,6,6
P12,4,6,60,3,3,01,4,2,03,8,8,6
P33,8,8,60,6,4,20,0,1,43,8,9,10
因为存在安全序列P0->P2->P1->P3,所以系统任处于安全状态。
所以P1的请求应该马上满足
8

假设具有5个进程的进程集合P={P0,P1,P2,P3,P4},系统中有三类资源A,B,C,假设
在某时刻有如下状态:
在这里插入图片描述

当前系统是否处于安全状态?
若系统中的可利用资源Available为(0,6,2),系统是否安全?
若系统处在安全状态,请给出安全序列;若系统处在非安全状态,简要说明原因。


Need:
P0,0,0,1
P1,0,7,5
P2,1,0,0
P3,0,6,2
P4,0,6,4
Work = Available = 1,4,0
先执行P2,释放资源
Work = 2,7,5,可以满足任意进程的需求
所以系统不会出现死锁,当前处于安全状态
2.
Work = 0,6,2
可以满足P0和P3的需求,执行完毕后释放资源,Work = 0,6,7
尽可满足P4的需求,P4结束后释放资源,Work = 0,6,8
此时不能满足余下任意进程的需求,系统出现死锁,因此当前系统处于非安全状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值