操作系统
进程B使用输入机和打印机的顺序是:
请求输入机(Br1)→请求打印机(Br2)→释放输入机(Br3)→释放打印机(Br4) 其中圆括号里标注的字母,表示某进程对设备的某种使用。例如,Ar1表示进程A请求打印机。由于A和B都是进程,它们的执行可以交叉进行。执行顺序:
Ar1→Ar2→Ar3→Ar4→Br1→Br2→Br3→Br4 或
Ar1→Ar2→Br1→Ar3→Ar4→Br2→Br3→Br4
都是合理的交叉。但是,以Ar1→Br1开始的执行就无法再往下进行了。因为进程A执行了Ar1,表明它占用了打印机。接着进程B执行了Br1,表明它占用了输入机。这样一来,不管后面是执行Ar2(进程A申请输入机)还是执行Br2(进程B申请打印机),都不可能得到满足,两个进程先后被阻塞:进程A占据着打印机而等待输入机,进程B占据着输入机而等待打印机。这就产生了死锁。
7.现有4个进程A、B、C、D,共享10个单位的某种资源。基本数据如图6-5(即教材中的图6-28)所示。试问如果进程D再多请求一个资源单位,所导致的是安全状态还是不安全状态?如果是进程C提出同样的请求,情况又会是怎样呢?
答:若进程D多请求一个资源,资源的使用情况如图6-6(a)所示。这时,系统剩余1个资源,4个进程各自还需要的资源数是5、4、2、2,资源剩余数无法保证任何一个进程运行结束。所以D多请求一个资源单位,会导致不安全状态。若是进程C提出同样的请求,那么系统资源的使用情况如图6-6(b)所示。这时,整个系统虽然也只剩余1个资源,但却能够保证4个进程都完成。所以,C再多请求一个资源单位,系统将处于安全状态。
进程
最大需求
系统剩余数:10
(a)
已有量
进程 最大需求
系统剩余数:2
(b)
已有量
图6-5 第7题的基本数据
进程
最大需求
已有量 还需量 进程 最大需求
已有量 还需量 系统剩余数:1
(a)
系统剩余数:1
(b)
图6-6 不安全与安全状态示意图
8.假定图6-7(即教材中的图6-21)里的进程A申请最后一台磁带机,会引起死锁吗?