操作系统(宗大华版)课后习题答案 联系客服

发布时间 : 星期二 文章操作系统(宗大华版)课后习题答案更新完毕开始阅读76151815a300a6c30c229f83

答:当进程A在自己的临界区里执行时,能够被别的进程打断,没有任何的限制。当进程A在自己的临界区里执行时,也能够被进程B打断,不过这种打断是有限制的。即当进程B执行到要求进入自己的临界区时,就会被阻塞。这是因为在它打断进程A时,A正在临界区里还没有出来,既然A在临界区,B当然就无法进入自己的临界区。

5.信号量上的P、V操作只是对信号量的值进行加1或减1操作吗?在信号量上还能够执行除P、V操作外的其他操作吗?

答:根据信号量的定义可知,P、V操作并非只是对信号量进行减1或加1操作,更重要的是在减1或加1后,还要判断运算的结果。对于P操作,判定后调用进程自己有可能继续运行,也可能阻塞等待。对于V操作,判定后调用进程自己最后总是继续运行,但之前可能会唤醒在信号量队列上等待的进程。

在信号量上除了能执行P、V操作外,不能执行其他任何操作。

6.系统有输入机和打印机各一台,均采用P-V操作来实现分配和释放。现在有两个进程都要使用它们。这会发生死锁吗?试说明理由。

答:采用信号量上的P、V操作,只能正确地完成对设备的申请与释放,但不能控制进程对设备的申请、释放顺序。因此,当进程申请和释放设备的顺序不当时,仍会发生死锁。例如,进程A使用输入机和打印机的顺序是:

请求打印机(Ar1)→请求输入机(Ar2)→释放打印机(Ar3)→释放输入机(Ar4) 进程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占据着输入机而等待打印机。这就产生了死锁。

33

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再多请求一个资源单位,系统将处于安全状态。

进程 A B C D 最大需求 6 5 4 7 系统剩余数:10 (a) 已有量 0 0 0 0 进程 A B C D 最大需求 6 5 4 7 系统剩余数:2 (b) 已有量 1 1 2 4 图6-5 第7题的基本数据

进程 A B C D 最大需求 6 5 4 7 已有量 1 1 2 5 还需量 4 5 2 2 进程 A B C D 最大需求 6 5 4 7 已有量 1 1 3 4

还需量 5 4 1 3 系统剩余数:1 (a) 系统剩余数:1 (b) 图6-6 不安全与安全状态示意图

8.假定图6-7(即教材中的图6-21)里的进程A申请最后一台磁带机,会引起死锁吗?

进程 磁带机 绘图仪 打印机 CD-ROM A B C D E 3 0 1 1 0 0 1 1 1 0 (a) 1 0 1 0 0 1 0 0 1 0 进程 磁带机 绘图仪 打印机 CD-ROM A B C D E 1 0 3 0 2 1 1 1 0 1 (b) 0 1 0 1 1 0 2 0 0 0 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];

34

再给B,B完成后系统资源剩余数矩阵A变为A [6 3 4 2],系统收回了所有资源。由此可知,进程A申请最后一台磁带机,不会引起死锁。

9.一个计算机有6台磁带机,有n个进程竞争使用,每个进程最多需要两台。那么n为多少时,系统才不存在死锁的危险?

答:由于每个进程最多需要两台磁带机,考虑极端情况:每个进程已经都申请了一台。那么只要还有一台空闲,就可以保证所有进程都可以完成。也就是说当有条件:n+1=6(即n=5)时,系统就不存在死锁的危险。

进程 磁带机 绘图仪 打印机 CD-ROM A B C D E 4 0 1 1 0 0 1 1 1 0 (a) 1 0 1 0 0 1 0 0 1 0 进程 磁带机 绘图仪 打印机 CD-ROM A B C D E 0 0 3 0 2 1 1 1 0 1 (b) 0 1 0 1 1 0 2 0 0 0 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,控制售票员与司机取得同步。

司机: 售票员: 的制约

启动车辆 关车门 启动汽

运行 售票 到站停车 开车门 打开车

图6-9 司机与售票员

35

于是,在加入了信号量上的P、V操作后,图6-9应该变为图6-10。

2.有一个阅览室共100个座位。用一张表来管理它,每个表目记录座号以及读者姓名。读者进入时要先在表上登记,退出时要注销登记。试用信号量及其P、V操作来描述各个读者“进入”和“注销”工作之间的同步关系。

解:分析题意,知道在管理读者“进入”和“注销” 阅览室的工作中,存在这样一些制约关系: (1)100个座位是读者共同使用的资源,因此要用一个资源分配信号量来管理它;

(2)读者“进入”阅览室时,要申请座位。只有申请到座位才能进入,否则应该等待到座位的释放;

(3)没有读者时,不能做“注销”工作,必须等到有了读者才能做。 因此,可以设置两个信号量: S1——初值为100,管理座位的分配;

S2——初值为0,控制“注销”与“进入”间取得同步。

司机: 售票员: P(S1) (等待售票员发“关门 完毕”的消息) 启动车辆 运行 到站停车 V(S2) (向售票员发“已经 停车”的消息) 关车门 V(S1) (向司机发“关门 完毕”的消息) 售票 P(S2) (等待司机发“已经 停车”的消息) 开车门 图6-10 加入P、V操作后的司机与售票员

“进入”与“注销”两个进程的流程如图6-11所示。

36