- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统部分习题参考答案
部分习题参考答案
第二章
书上习题
23. 若缺少了signal(full),由于full初值为0,消费者无法取产品;
当缓冲池全送满时,empty降为0,若缺少了signal(empty),当缓冲池全取空时,由于empty仍然为0,生产者无法再送产品。
24.如果wait(full)和wait(mutex)互换位置,会造成当full=0时,若有消费者进程还对full执行wait操作,导致死锁。
28.设初值 empty=1, full=0
Precess1: begin Repeat
Wait(empty)
Critical section 送数据 Signal(full) Until false End
Precess2: begin Repeat Wait(full)
Critical section 取数据 Signal(empty) Until false End
附加题:
1.
设信号量S 表示共享资源,初值为1
(模型图请参考课件) 2.
因为两个进程要协作完成一个任务,为了进程间的相互唤醒(即同步执行),对私用信号量的PV操作应成对出现在两个进程中。
3.供者A和用者B的同步关系模型: 设:
S1-表示Buf是否为空(0为不空,1为空); S2-表示Buf是否为满(0为不满,1为满)。
且初值为:S1=1,S2=0。
(注: 与课件中的假设条件相反
课件中:设S1- 表示Buf是否为满(0为不满,1为满); S2- 表示Buf是否为空(0为不空,1为空)。 S1初值为0,S2的初值为1。 ) (这里,供者和用者要交换两个消息:缓冲区空和满的状态。当空时,供者才能送数据;当满时用者才能取数据。用者不能超前供者,供者不能往满的区中再送,避免覆盖掉前面的数据)
供者A 用者B
P( S1) P(S2)
送信息到缓冲区,直到满。 取数据,直到空 V(S2) P(S1)
4. 答:不能,因为他先对缓冲池执行了互斥操作。(缓冲池的初值为1,执行P操作后为0)。
5. 答:不能,应该先对私用信号量执行P操作,再对公用信号量执行P操作,否则可能会引起死锁。V操作的顺序没关系。
如:若先对mutex执行P操作,再对empty执行P操作,当执行到empty=0时,再对mutex执行P操作,可以进入缓冲池,但由于这时empty已经为0,没有空的缓冲区可用,出现死锁,出不去又进不来。
6. 答: 可以。因为两个进程是并发进程,不满就可以送,不空就可以取。但不论谁执行,都要先对缓冲池执行互斥操作。
7. 答:通过私用信号量 empty,和full。
已知初值empty=n, full=0 。 在生产者进程中对empty执行P操作,对full执行V操作,当empty=0,full=n时,说明缓冲池满,不能再送;当消费者进程中的full=0,而empty=n时,说明缓冲池空,不能再取。
第三章
1. 对下面的5个非周期性实时任务,按最早开始截止时间优先调度算法,以图示说明,应如何进行CPU调度? (分“抢占式”和“非抢占式”)
进程 到达时间 执行时间 开始截止时间 A 10 20 110 B 20 20 20 C 40 20 50 D 50 20 90 E 60 20 70 答:
0 10 20 30 40 50 60 70
文档评论(0)