第4章进程同步和进程通信.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多
第4章 进程同步与进程通信 一、填空 1.信号量的物理意义是当信号量值大于零时表示 可用资源个数 ;当信号量值小于零时,其绝对值为 等待进程个数 。 2.所谓临界区是指进程程序中 。 3.用P、V操作管理临界区时,一个进程在进入临界区前应对信号量执行 p 操作,退出临界区时应对信号量执行 v 操作。 4.有m个进程共享一个临界资源。若使用信号量机制实现对临界资源的互斥访问,则该信号量取值最大为 1 ,最小为 1-m 。 5.对信号量S的P操作原语中,使进程进入相应信号量队列等待的条件是 s0 。 6.信箱在逻辑上被分为 信箱头 和 信箱体 两部分。 7.在操作系统中进程间的通信可以分为 高级 通信与 低级 通信两种。 二、选择 1.P、V操作是 。 A.两条低级进程通信原语 B.两条高级进程通信原语 C.两条系统调用命令 D.两条特权指令 2.进程的并发执行是指若干个进程 。 A.共享系统资源 B.在执行的时间上是重叠的 C.顺序执行 D.相互制约 3.若信号量S初值为2,当前值为?1,则表示有 个进程在与S相关的队列上等待。 A.0 B.1 C.2 D.3 4.用P、V操作管理相关进程的临界区时,信号量的初值应定义为 。 A.?1 B.0 C.1 D.随意 5.用V操作唤醒一个等待进程时,被唤醒进程的状态变为 。 A.等待 B.就绪 C.运行 D.完成 6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是 。 A.没有进程进入临界区(MUTEX=1) B.有一个进程进入临界区(MUTEX=0) C.有一个进程进入临界区,另一个在等待进入临界区(MUTEX=-1) D.不定 7.信箱通信是进程间的一种 通信方式。 A.直接 B.间接 C.低级 D.信号量 三、问答 1.进程A和B共享一个变量,因此在各自的程序里都有自己的临界区。现在进程A在临界区里。试问进程A的执行能够被别的进程打断吗(可以)?能够被进程B打断吗(这里,“打断”的含义是调度新进程运行,使进程A暂停执行)(不可以)? 2.信号量上的P、V操作只是对信号量的值进行加1或减1操作吗(否)?在信号量上还能够执行除P、V操作外的其他操作吗?(不能) 3. 进程在运行时存在哪两种形式的制约?并举例说明之。(互斥和同步) 4. 同步机构应遵循哪些基本准则?为什么?(空闲让进,忙则等待,让权等待,有限等待) 5.试比较进程间的低级与高级通信工具。 6.当前有哪几种高级通信机制? 7.消息队列通信机制有哪几方面的功能? 四、计算 1.在公共汽车上,司机和售票员的工作流程如图1所示。为了确保行车安全,试用信号量及其P、V操作来协调司机和售票员的工作。 解:设信号量 s1=0;/*不能启动车辆*/ S2=0;/*不能开车门*/ v(s2)P(s2 v(s2) P(s2) v(s1) P(s1) 图1 司机与售票员 缓冲区b2.今有3个并发进程R、S、T,它们共享一个缓冲区B。进程R负责从输入设备读入信息,每读出一个记录后就把它存入缓冲区B中;进程S利用缓冲区B加工进程R存入的记录;进程T把加工完毕的记录打印输出。缓冲区B一次只能存放一个记录。只有在进程T把缓冲区里的记录输出后,才能再往里存放新的记录。试用信号量及其P、V操作控制这3个进程间的的正确工作关系。 缓冲区b 解:设信号量:s1=1;/*缓冲区b能放一个记录*/ S2=0;/*缓冲中没有可以加工的记录*/ S3=0;/*缓冲中没有可以打印的记录*/ R( ) { while(1) { 取到一个记录; P(s1); 将记录放入缓冲; V(s2); } } S( ) {while(1) { p(s2); 将b中记录加工; V(s3); } } T( ) { while(1) { p(s3); 将b中记录取出; V(s1); 打印记录; } } 3.假定有3个进程R、W1、W2共享一个缓冲区B,B中每次只能存放一个数。进程R从输入设备读入一个数,把它存放到缓冲区B里。如果存入的是奇数,则由进程W1取出打印;如果存入的是偶数,则由进程W2取出打印。规定

文档评论(0)

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

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

1亿VIP精品文档

相关文档