某系统由R1、R2和R3共3种资源,在TO时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如下表所示,此时系统的可用资源向量为(2,1,2)。试问:
问答题 系统是否处于安全状态?如安全,请给出一个安全序列。
【正确答案】正确答案:本题考查采用银行家算法避免死锁。 利用安全性算法对时刻的资源分配情况进行分析,可得到如下表所示的安全性检测情况。 可以看出,此时存在一个安全序列{P2,P3,P4,P1},故该系统是完全的。
【答案解析】
问答题 如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因。
【正确答案】正确答案:若此时P1发出资源请求Request1(1,0,1),按银行家算法进行检查: Requestl(1,0,1)≤Needl(2,2,2) Request1(1,0,1)≤Available(2,1,2) 试分配并修改相应的数据结构,由此形成的资源分配情况如下表所示:再利用安全性算法检查系统是否安全,可用资源Available(1,1,1)己不能满足任何进程,系统进入不安全状态,此时系统不能将资源分配给P1。 若此时P2发出资源请求Request2(1,0,1),按银行家算法进行检查: Request2(1,0,1)≤Need2(2,0,2) Request2(1,0,1)≤Available(2,1,2) 试分配并修改相应的数据结构,由此形成的资源分配情况如下表所示:再利用安全性算法检查系统是否安全,安全性检查情况如下表所示。可以看出,此时存在一个安全序列{P2,P3,P4,P1},故该状态是完全的,可立即给P2申请的资源分配给它。
【答案解析】
问答题 如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态。
【正确答案】正确答案:如果上一小题中两个请求立即得到满足,此刻系统并没有立即进程死锁状态,因为这时所有进程没有提出新的资源申请,全部进程均没有因资源请求没得到满足而进入阻塞状态。只有当进程提出资源请求,且全部进程都进入阻塞状态时,系统才处于死锁状态。
【答案解析】