习题5答案的.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文档。上传文档
查看更多
习题5答案的

习题5答案 习题5 何谓与时间有关的错误?举例说明之。 答:并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误结果。由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。例子略。 什么是临界资源?什么是临界区? 答:一次仅允许一个进程使用的资源称为临界资源;在每个进程中,访问临界资源的那段程序称为临界区。 试分析临界区的大小与系统并发性之间的关系。 答:关于同一组变量的临界区是不能并发执行的代码,临界区越大,并发性越差,因而编写并发程序应尽量缩小临界区域范围。 为何开关中断进程互斥方法仅在单CPU系统中是有效的? 答:关中断方法不适用于多CPU系统,因为关中断只能保证CPU不由一个进程切换到另外一个进程,从而防止多个进程并发地进入公共临界区域。但即使关中断后,不同进程仍可以在不同CPU上并行执行关于同一组共享变量的临界区代码. 进程的互斥和同步有什么异同点? 答:进程的同步和互斥是指进程在推进时的相互制约关系。 进程同步源于进程合作,是进程间共同完成一项任务是直接发生相互作用的关系。是进程之间的直接制约关系。进程互斥源于对临界资源的竞争,是进程之间的间接制约关系。 答:进程的同步和互斥是指进程在推进时的相互制约关系,已经在上题中给出了详细的解答。 由于进程间存在制约关系,为了保证进程的正确运行以及相互合作进程间的信息交换,就需要进程之间进行通信。进程通信是指进程间的信息交换,分为高级通信和低级通信 同步机构应遵循哪些基本准则? 答:a.空闲让进. b.忙则等待. c.有限等待. d.让权等待. 试从物理概念上说明信号量P、V操作的含义。 答:P(S)表示申请一个资源,S.value0表示有资源可用,其值为资源的数目;S.value=0表示无资源可用;S.value0, 则|S.value|表示S等待队列中的进程个数。V(S)表示释放一个资源,信号量的初值应该大于等于0。 由V操作唤醒的进程是否一定能够直接进入运行状态?举例说明之。 答:否。一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,其状态变成运行态。如果该进程不是系统中优先级最高的进程或系统采用其它调度算法,那么该进程不会被调度执行,其状态将维持在就绪态。 我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。 答:开锁原语: void unlock(W) { W=0; } 关锁原语: void lock(W) {while (W==1) { }; W=1; } 利用开关锁原语实现互斥: semaphore W=0; main ( ) { cobegin Pn ( ) /*并发的进程P1、P2、……Pn */ { lock(W); 临界区; unlock(W); 其余部分; } …… coend } 试写出相应的程序来描述图5.8所示的前趋图。 答:(a)设6个同步信号量f1、f2、f3、f4、f5、f6分别表示进程S1、S2、S3、S4、S5、S6是否执行完成,其初值均为0。这7个进程的同步描述如下: 主程序如下: semaphore fl=f2=f3=f4=f5=f6=; main ( ) { cobegin S1(); S2(); S3(); S4(); S5(); S6(); S7(); coend } 各个进程的语句形式如下: void S1() { …… V(f1); V(f1); } void S2() { P(f1); …… V(f2); V(f2); } void S3() { P(f1); …… V(f3); } void S4() { P(f2); …… V(f4); } void S5() { P(f2); …… V(f5); } void S6() { P(f3); …… V(f6); } void S7() { P(f4); P(f5); P(f6); …… } (b)另一种做法: 设7个同步信号量f2、f3、f4、f5、f6、f7、f8分别表示进程S2、S3、S4、S5、S6、S7、S8是否可以开始执行,其初值均为0。 semaphore f2=f3=f4=f5=f6=f7=f8=; 主程序:略(类似a) 这8个进程的语句形式如下: void S1() { …… V(f2); V(f3); } void S2() { P(f2); …… V(f4); V(f5);

文档评论(0)

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

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

1亿VIP精品文档

相关文档