操作系统
进程 磁带机 绘图仪 打印机 CD-ROM
(a)
进程 磁带机 绘图仪 打印机 CD-ROM (b)
E [ 6 3 4 2 ] (资源总数) P [ 5 3 2 2 ] (已分配数) A [ 1 0 2 0 ] (剩余数) (c)
图6-7 多种资源的银行家算法
答:进程A申请了最后一台磁带机后,系统资源的使用情况由图6-7变为图6-8。按照
多种资源的银行家算法,这时系统资源的剩余数可以满足进程D的要求,于是系统资源剩余数矩阵A变为A [1 1 2 1];这样的剩余数,可以满足进程A的要求,于是系统资源剩余数矩阵A变为A [5 1 3 2];这样的剩余数,可以满足进程B、C、E三个进程中任何一个的需要,例如给E。在E完成后,系统资源剩余数矩阵A仍为A [5 1 3 2];再给C,C完成后系统资源剩余数矩阵A变为A [6 2 4 2];再给B,B完成后系统资源剩余数矩阵A变为A [6 3 4 2],系统收回了所有资源。由此可知,进程A申请最后一台磁带机,不会引起死锁。
9.一个计算机有6台磁带机,有n个进程竞争使用,每个进程最多需要两台。那么n为多少时,系统才不存在死锁的危险?
答:由于每个进程最多需要两台磁带机,考虑极端情况:每个进程已经都申请了一台。那么只要还有一台空闲,就可以保证所有进程都可以完成。也就是说当有条件:n+1=6(即n=5)时,系统就不存在死锁的危险。
进程 磁带机 绘图仪 打印机 CD-ROM
(a)
进程 磁带机 绘图仪 打印机 CD-ROM (b)
E [ 6 3 4 2 ] (资源总数) P [ 6 3 2 2 ] (已分配数) A [ 0 0 2 0 ] (剩余数) (c)
图6-8 进程A申请了最后一台磁带机后
10.考虑教材中的图6-16(d)。如果进程C需要的是资源S,而不是资源R,这会引起
死锁吗?如果是既要求资源R又要求资源S,情况会怎样?
答:这时的资源使用序列为:(1)A申请R,C申请T,A申请S,C申请S,A释放R,A释放S;(2)A申请R,C申请T,A申请S,C申请S,C申请R,A释放R,A释放S。分别画出它们的资源分配图,可知,它们都不会引起死锁。
四、计算
1.在公共汽车上,司机和售票员的工作流程如图6-9(即教材上的图6-29)所示。为了确保行车安全,试用信号量及其P、V操作来协调司机和售票员的工作。
解:从日常生活知识知道,司机和售票员之间的工作有如下
司机:
售票员
:
辆
操作系统
的制约关系存在。
(1)司机必须在得到售票员的“关门完毕”的信号后,才能启动汽车。这是一个司机要与售票员取得同步的问题。
(2)售票员必须在得到司机的“已经停车”的信号后,才能打开车门。这是一个售票员要与司机取得同步的问题。
因此,为了确保行车安全,需要设置两个同步信号量: S1——初值为0,控制司机与售票员取得同步;
S2——初值为0,控制售票员与司机取得同步。
于是,在加入了信号量上的P、V操作后,图6-9应该变为图6-10。
2.有一个阅览室共100个座位。用一张表来管理它,每个表目记录座号以及读者姓名。读者进入时要先在表上登记,退出时要注销登记。试用信号量及其P、V操作来描述各个读者“进入”和“注销”工作之间的同步关系。
解:分析题意,知道在管理读者“进入”和“注销” 阅览室的工作中,存在这样一些制约关系:
(1)100个座位是读者共同使用的资源,因此要用一个资源分配信号量来管理它; (2)读者“进入”阅览室时,要申请座位。只有申请到座位才能进入,否则应该等待到座位的释放;
(3)没有读者时,不能做“注销”工作,必须等到有了读者才能做。 因此,可以设置两个信号量:
S1——初值为100,管理座位的分配;
S2——初值为0,控制“注销”与“进入”间取得同步。
司机:
售票员:
图6-10 加入P、V操作后的司机与售票员
“进入”与“注销”两个进程的流程如图6-11所示。