操作系统第二章作业讲解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 习题讲解 1、进程之间存在着哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系? (1)若干同学去图书馆借书;(2)两队举行篮球比赛;(3)流水线生产的各道工序;(4)商品生产和社会消费。 答:进程之间存在着直接制约与间接制约这两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。 (1)若干同学去图书馆借书,是间接制约,其中书是临界资源;(2)两队举行篮球比赛,是间接制约,其中蓝球是临界资源;(3)流水线生产的各道工序,是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成;(4)商品生产和社会消费,是直接制约,两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产。 2、试写出相应的程序来描述下图所示的前趋图 var a,b,c,d,e,f:semaphore:=0,0,0,0,0,0; begin S1; signal(a); signal(b); signal(c); end; begin wait(a); S2; end; begin wait(b); S3; signal(d); end; begin wait(c); S4; end; begin wait(d); S5; signal(e); signal(f); end; begin wait(e); S6; end; begin wait(f); S7; end; 3、已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,试画出该公式求值过程的前趋图,并使用信号量描述这些前趋关系。 答:根据求值公式,假设: S1: X1=A*A S2: X2=3*B S3: X3=5*A S4: X4=X1+X2 S5: X5=B+X3 S6: X6=X4/X5 var a,b,c,d,e:semaphore:=0,0,0,0,0; begin S1; signal(a); end; begin S2; signal(b); end; begin S3; signal(c); end; begin wait(a); wait(b); S4; signal(d); end begin wait(c); S5; signal(e); end begin wait(d); wait(e); S6; end 4、桌上有一只能容纳一个水果的盘子;爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果,1)试用信号量实现他们的同步关系;2)如果有两个家庭的爸爸、妈妈、儿子、女儿和二只盘子呢?会需要专门的实现吗? var empty,apple,orange:semaphore:= 1,0,0; 说明:empty与apple表示盘子为空与盘子中放入了苹果,用于表示爸爸与女儿间的同步关系;empty与orange表示盘子为空与盘子中放入了桔子,用于表示妈妈与儿子间的同步关系; 答案:1)使用记录型信号量 father:begin repeat producer an apple; wait(empty); Put an apple to the dish; signal(apple); Until false end daughter:begin repeat wait(apple); Get an apple from dish; signal(empty); Eat an apple; Until false end mother:begin repeat producer an orange; wait(empty); Put an orange to the dish; signal(orange); Until false end son:begin repeat wait(orange); Get an orange from dish; signal(empty); Eat an orange; Until false end 2)使用记录型信号量 var mutex,empty,apple,orange:semaphore:=1,2,0,0; dish: array[0,1] of fruit; in, out:integer:= 0,0; father:begin repeat producer an apple; wait(empty); wait(mutex); if dish[in]==apple or dish[

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档