《第八章 死锁习题及答案.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 死锁习题及答案 一、填空题 1.进程的“同步”和“互斥”反映了进程间 ① 和 ② 的关系。 【答案】①直接制约、②间接制约 【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。 2.死锁产生的原因是 ① 和 ② 。 【答案】①系统资源不足、②进程推进路径非法 【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。 3.产生死锁的四个必要条件是 ① 、 ② 、 ③ 、 ④ 。 【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件 【解析】 互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。 非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。 占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源, 循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。 4.在操作系统中,信号量是表示 ① 的物理实体,它是一个与 ② 有关的整型变量,其值仅能由 ③ 原语来改变。 【答案】①资源,②队列,③P-V 【解析】信号量的概念和 P-V原语是荷兰科学家 E.W.Dijkstra提出来的。信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。信号量的值只能由P-V原语来改变。 5.每执行一次P原语,信号量的数值S减1。如果S>=0,该进程 ① ;若S<0,则 ② 该进程,并把它插入该 ③ 对应的 ④ 队列中。 【答案】①继续执行,②阻塞(等待),③信号量,④阻塞(等待) 【解析】从物理概念上讲,S>0时的数值表示某类资源可用的数量。执行一次P原语,意味着请求分配一个单位的资源,因此描述为S=S-1。当S<0时,表示已无资源,这时请求资源的进程将被阻塞,把它排在信号量S的等待队列中。此时,S的绝对值等于信号量队列上的阻塞的进程数目。 6.每执行一次V原语,信号量的数值S加1。如果 ① ,Q进程继续执行;如果S<=0,则从对应的 ② 队列中移出一个进程R,该进程状态变为 ③ 。 【答案】①S>0,②等待,③就绪 【解析】执行一次V原语,意味着释放一个单位的资源。因此,描述为S=S+1。当S<0时,表示信号量请求队列中仍然有因请求该资源而被阻塞的进程。因此,应将信号量对应的阻塞队列中的第一个进程唤醒,使之转至就绪队列。 7.利用信号量实现进程的 ① ,应为临界区设置一个信号量 mutex。其初值为 ② ,表示该资源尚未使用,临界区应置于 ③ 和 ④ 原语之间。 【答案】①互斥,②1,③P(mutex),④V(mutex) 【解析】一次仅允许一个进程使用的资源称为临界资源,对临界资源实施操作的那段程序称为临界区。对于具有临界区问题的并发进程,它们之间必须互斥,以保证不同时进入临界区。利用信号量和P-V原语能方便地解决临界区问题。mutex为互斥公用信号量,初值为1,临界区的代码被置于P(mutex)、V(mutex)原语之间时,任何欲进入临界区的进程,必须在公用信号量mutex上执行P原语,在完成对临界资源的访问后再执行V原语。由于mutex初值为1,当第一个进程执行P原语后减为0,表示临界资源空闲,可分配给该进程使之进入临界区,在第一个进程没有退出临界区之前,若此时第二个进程想进入临界区,也应先执行P原语。而结果是mutex变为负值,就意味着临界资源已被占用,因此,第二个进程被阻塞。直到第一个进程执行V原语,释放该临界资源mutex到0后,方可唤醒第二个进程,使之进入临界区,待它完成对临界资源的访问后,又执行V原语,使mutex恢复到初始值。 8.在多道环境下,由于进程的并发执行,

文档评论(0)

xiaoyi2013 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档