各进程的资源需求量Need,Need=MaxAllocatio
,利用银行家算法对T0时刻的资源分配情况进行分析,可得此时的安全性分析情况,如下表:
资源情况进程
WorkABCA1201
NeedBC12030164
Allocatio
ABC324410004452
WorkAllocatio
ABC54774111141615418
Fi
ish
P5P4P3P2
233547741111416
truetruetruetrue
P11541834721217520true从T0的安全性分析中可以看出,存在一个安全序列P5、P4、P3、P2、P1,故T0时刻的状态是安全的。(6分)(2)若在T0时刻进程P2请求资源(0,3,4),因请求资源数(0,3,4)大于剩余资源数(2,3,3),所以不能分配。(2分)(3)在(2)的基础上,若进程P4请求资源(2,0,1),按银行家算法进行检查:P4请求资源(2,0,1)P4需求资源(2,2,1)P4请求资源(2,0,1)剩余资源数(2,3,3)试分配并修改相应的数据结构,由此形成的资源分配情况如下表所示:
5
f资源情况进程
Allocatio
AB1000122554CA31001
NeedB43021C74600A0
AvailableB3C3
P1P2P3P4P5
24443
此时,如题(1)利用银行家算法检查系统的安全状态,存在一个安全序列P4、P5、P3、P2、P1,故该状态是安全的,可以立即将P4请求的资源分配给它。例4:某系统有同类资源m个,
个并发进程可共享该类临界资源。求:每个进程最多可申请多少个该类临界资源,保证系统一定不会发生死锁。解:设每个进程最多申请该类资源的最大量为x。为保证系统不会发生死锁,应满足下列不等式:
x11≤m()
解不等式(),可得:x≤1m1
即:x的最大值为1m1
。因而,当每个进程申请资源的最大数值为1m1
时,系统肯定不会发生死锁。某系统中有5个并发进程,都需要同类资源3个,试问该系统不会发生死锁的最少资源数是(11)。某系统中有4个并发进程,都需要同类资源3个,试问该系统不会发生死锁的最少资源数是9。某计算机系统中有8台打印机有K个进程竞争使用每个进程最多需要3台打印机该系统可能会发生死锁的K的最小值是4系统中有3个进程,每个进程需2台打印机,如果系统配有4台打印机,则系统______不可能________出现死锁的情况(本题要判断出现死锁的可能性:可能或不可能)。
6
f若系统运行中出现如下表所示的资源分配情况,该系统是否安全?若是,给出安全序列;如果进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?为什么?
资源情况进程
Allocatio
已分配资源数
Need还需要资源数01200073661555r