操作系统复习题答案基本全部答案.docVIP

操作系统复习题答案基本全部答案.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统复习题答案基本全部答案

(一)进程同步 进程同步1 进程P1和进程P2并发执行时满足一定的时序关系,P1的代码段S1执行完后,才能执行P2的代码段S2.为描述这种同步关系,(:试设计相应的信号量,(:给出信号量的初始值,(:给出进程P1和P2的结构 解答: (信号量变量申明为 Typedef struct { int value; //信号量中的值,表示资源的数量 struct PCB *L; //等待该信号量的队列 }semaphore; 设信号量semaphore synch; (初始值为:synch.value=0 (进程P1和P2的结构为 P1: { P2: { ? ? S1 wait(synch); signal(synch); S2 ? ? } } 进程同步2 问题描述:(理发店问题)一个理发店有一间配有n个椅子的等待室和一个有理发椅的理发室。如果没有顾客,理发师就睡觉;如果顾客来了二所有的椅子都有人,顾客就离去;如果理发师在忙而有空的椅子,顾客就会坐在其中一个椅子;如果理发师在睡觉,顾客会摇醒他。 给出同步关系 设计描述同步关系的信号量; 给出满足同步关系的进程结构(请完成满足同步关系的进程结构)。 解答:(顾客customer应满足的同步关系为: a:顾客来时要等空的椅子,否则不进理发室 b:座椅上的顾客要等理发椅空才有可能与别的顾客竞争理发椅,如果顾客坐上 理发椅,就要腾空其座椅给新来顾客,同时叫理发师给其理发。 c:一旦顾客理发完,就要让别的等待顾客有机会理发。 理发师应满足的同步关系为: 一旦顾客唤醒,就给顾客理发,之后进入睡觉。 (信号量定义如下: Typedef struct { int value; //信号量中的值,表示资源的数量 struct PCB *L; //等待该信号量的队列 }semaphore; 互斥信号量定义如下: Typedef struct { bool flag; struct PCB *L; }binary_semaphore; 理发店问题的解决需要信号量和互斥信号量为: semaphore chair; binary_semaphore barber_chair, hair_cut; 它们的初始值为: chair.value=n; barber_chair.flag=1; hair_cut.flag=0; (顾客和理发师进程分别为: customer { barber { wait(chair); do { waiting in the chair; wait(hair_cut); wait(barber_chair); cutting hair; signal(hair_cut); signal(barber_chair); sitting in barber chair for haircut; }while(1) signal(chair); } } 进程同步2

您可能关注的文档

文档评论(0)

技术支持工程师 + 关注
实名认证
文档贡献者

仪器公司技术支持工程师

1亿VIP精品文档

相关文档