问答题 某系统有R1、R2和R3共三种资源,在T0时刻,P1、P2、P3和P4这四个进程对资源的占用和需求情况如下表所示,此时系统的可用资源向量为(2,1,2)。试问:
问答题 将系统中各种资源总数和此刻各进程对各资源的需求个数用向量或矩阵表示出来。
【正确答案】系统中资源总量为某时刻系统中可用资源量与各进程已分配资源量之和,即 (2,1,2)+(1,0,1)+(4,1,1)+(2,1,1)+(0,0,2)=(9,3,7) 各进程对资源的需求量为各进程对资源的最大需求量与进程已分配资源量之差,即 [*]
【答案解析】
问答题 如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明所采用策略的原因。
【正确答案】若此时P1发出资源请求Request(1,0,1),按银行家算法进行检查:
Request(1,0,1)≤Need(2,2,2)
Request(1,0,1)≤Available(2,1,2)
试分配并修改相应的数据结构,由此形成的资源分配情况如表1所示。
{{B}}表1 重新分配后资源情况{{/B}}
进程 Allocation Need Available
P1 2  0  2 1  2  1 1  1  1
P2 4  1  1 2  0  2
P3 2  1  1 1  0  3
P4 0  0  2 4  2  0
再利用安全性算法检查系统是否安全,可用资源Available(1,1,1)已不能满足任何进程,系统进入不安全状态,此时系统不能将资源分配给P1。 若此时P2发出资源请求Request(1,0,1),按银行家算法进行检查: Request(1,0,1)≤Need(2,0,2) Request(1,0,1)≤Available(2,1,2) 试分配并修改相应的数据结构,由此形成的资源分配情况如表2所示。
{{B}}表2 重新分配后资源情况{{/B}}
进程 Allocation Need Available
P1 1  0  1 1  2  1 1  1  1
P2 5  1  2 1  0  1
P3 2  1  1 1  0  3
P4 0  0  2 4  2  0
再利用安全性算法检查系统是否安全,可得到表3所示的安全性检测情况。
{{B}}表3 安全性检测情况{{/B}}
Work Need Alloeation Work+Alloeation Finish
P2 1  1  1 1  0  1 5  1  2 6  2  3 true
P3 6  2  3 1  0  3 2  1  1 8  3  4 true
P4 8  3  4 4  2  0 0  0  2 8  3  6 true
P1 8  3  6 2  2  2 1  0  1 9  3  7 true
从表2中可以看出,此时存在一个安全序列{P2、P3、P4、P1},所以该状态是安全的,可以立即将P2所申请的资源分配给它。
【答案解析】
问答题 如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?
【正确答案】如果(2)中两个请求立即得到满足,此时系统处于不安全状态,但并没有立即进入死锁状态,因为这时所有进程没有提出新的资源申请,全部进程均没有因资源请求没得到而进入阻塞状态。只有当进程提出资源申请且全部进程都进入阻塞状态时,系统才处于死锁状态。
【答案解析】
问答题 若已知P1运行过程中的全部资源使用情况按时间先后顺序如下表列出。
{{B}}4个进程对资源的占用和需求情况{{/B}}
进程 最大资源需求量 已分配资源数量
R1 R2 R3 R1 R2 R3
P1 3 2 3 1 0 1
P2 6 1 3 4 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
i.P1被创建
ii.申请1个R1和1个R3
iii.申请1个R1和1个R3
iv.释放2个R3
v.申请1个R1、2个R2和3个R3
则(2)中P1请求立即得到满足后,系统是否处于不安全状态?
【正确答案】题目提供了P1的资源使用顺序,一个重要的信息是P1获得R1和R3后,没有提出新的资源申请,而是释放了两个R3资源。新形成的资源分配情况如表4所示。
{{B}}表4 新形成的资源分配情况{{/B}}
进程 AllocatiOn Need Available
P1 2  0  0 1  2  3 1  1  3
P2 4  1  1 2  0  2
P3 2  1  1 1  0  3
P4 0  0  2 4  2  0
再利用安全性算法检查系统是否安全,可得到表5所示的安全性检测情况。
{{B}}表5 安全性检测情况{{/B}}
Work Need Allocation Work+Allocation Finish
P3 1  1  3 1  0  3 2  1  1 3  2  4 true
P1 3  2  4 1  2  3 2  0  0 5  2  4 true
P2 5  2  4 2  0  2 4  1  1 9  3  5 true
P4 9  3  5 4  2  0 0  0  2 9  3  7 true
从表5中可以看出,此时存在一个安全序列{P3、P1、P2、P4},所以该状态是安全的。其实在这种情况下,还存在其他安全序列,如{P3、P2、P1、P4}等,考生可以自己总结。
【答案解析】