- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(操作系统习题第四章答案
第四章 互斥、同步与通讯答案
一、单项选择题
1.B 2.D 3.B 4.B 5.D 6.A 7.C 8.B 9.D 10.C
11.D 12.C 13.C 14.B 15.B 16.B 17.A 18.B 19.D 20.B
21.B 22.A 23.C 24.B 25.B 26.B 27.A 28.C
二、多项选择题
1.[分析]任何一台CPU在每一时刻只能解释执行一条指令,因而,不可能在同一时刻为多个进程服务。进程可同时执行的含义是一个进程的工作没有全部完成之前另一进程就可开始工作。所以,实际上多个进程是轮流占用CPU运行的。到底哪个进程能占用处理器不仅与进程自身有关,且受外界因素的影响;当多个进程竞争CPU时,必须由进程调度来决定当前哪个进程可以占用CPU;故每个进程都是走走停停的,进程执行的速度不能完全由进程自己来控制。
并发进程相互之间可能是无关的,即它们是各自独立的,这些进程中每一个进程的执行既不依赖于其它进程也不会影响其它进程的执行。但是,有些并发进程需使用共享资源,为保证进程执行的正确性,对共享资源的使用必须加以限制。同步就是并发进程中的一种制约关系,一个进程能否使用共享资源取决于其它进程的消息,只有指定的消息到达才可使用共享资源。如果无约束地使用共享资源,则可能出现多个进程交替地访问共享资源,于是就可能会出现与时间有关的错误。故本题的答案为C、D、E。
[题解]C、D、E。
2.[分析]根据P操作的定义,当调用P操作时, P操作把信号量S减去1,若结果小于0则调用者将等待信号量,否则可继续运行。因而,若调用P(S)后S的值为>=0则进程可以继续运行,故应选择A和D。要注意不能选择C,因S0包含了S>0和S<0,当S<0时进程将成为等待状态而不能运行。
[题解]A,D。
3.[题解]A,C,E。
三、判断题
1. [题解]是。
2.[分析]如果不控制并发进程执行的相对速度,则它们在共享资源时可能会出现两种情况:一种是并发进程交替使用共享资源,这样就可能会发生与时间有关的错误;另一种是并发执行的速度没有致使它们交替使用共享资源,这时就不会出现与时间有关的错误。因而,本题的结论“一定会出现与时间有关的错误”是不对的。
[题解]否。
3. [分析]如果一个进程单独执行时,那么执行结果只取决于进程本身,不受外界影响。但多个进程并发执行时,无论是进程本身的原因还是外界的因素都会影响到进程的执行速度。如果并发进程有共享变量且其执行速度造成了它们交替访问共享变量,那么进程的执行结果可能不惟一。故本题的阐述不确切。
[题解]否。
4.[题解]是。
四、填空题
1.封闭性,可再现性
2.并发进程
3.与时间有关的
4.临界区
5.P, V
6.竞争(或互斥),协作(或同步)
7.P, V
8.等待信号量,就绪
9.[分析]因规定该资源只能互斥使用,因而信号量的初值应定义为1。当n个进程各调用一次P操作时将使信号量的值为最小。
[题解]1,(1-n)或-(n-1)。
10.[分析]由于初值为10,因而调用了18次P操作后的值为(l0-18)=-8。再调用15次V操作的话则信号量的值为(-8+15)=7。
「题解」7。
11.send(或发送),receive(或接收)
12.可用资源的数量;等待这类资源的进程个数
13. 进程通信
五、计算题
1.(1)两个进程之间的关系是同步关系。
(2)应定义两个信号量S1和S2,分别表示两个不同的消息:“允许拣黑子”和“允许拣白子”。假定让进程A先拣黑子,则S1的初值为1,S2的初值应为0。
(3)进程A、进程B能正确并发执行的程序应如下:
Cobegin
Process A
Begin
L1: P(S1)
拣一粒黑子;
V(S2)
goto L1
end;
process B
Begin
L2:P(S2)
拣一粒白子;
V(S1)
goto L2
end;
coend
2.用PV操作管理时应定义三个信号量,分别表示仓库尚可存放多少成品、仓库中是否有成品、搬运设备是否空闲。显然,它们的初值应分别为:8、0、1。
begin
G,C,M:semaphore;
G:=8;C:=0;M:=1;
cobegin
process producer
begin
L1:P(G);
produce a product;/*生产成品*/
P(M);
put a product;/*存入成品*/
V(M)
文档评论(0)