首页 > 知识点讲解
       死锁问题
知识路径: > 计算机系统综合知识 > 操作系统 > 操作系统基本原理 > 处理器管理 > 
被考次数:9次     被考频率:中频率     总体答错率:50%     知识难度系数:     
相关知识点:10个      
        死锁是指多个进程之间互相等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。如果一个进程在等待一个不可能发生的事件,则进程就死锁了。如果一个或多个进程产生死锁,就会造成系统死锁。
               死锁发生的必要条件
               产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。产生死锁有4个必要条件:互斥条件,不可抢占条件,保持与等待条件(部分分配条件)、循环等待条件。
               (1)互斥条件:即一个资源每次只能被一个进程使用。
               (2)保持与等待条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。
               (3)不可抢占条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
               (4)循环等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
               银行家算法
               所谓银行家算法,是指在分配资源之前先看清楚,资源分配后是否会导致系统死锁。如果会死锁,则不分配,否则就分配。
               按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:
               (1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
               (2)进程可以分期请求资源,但请求的总数不能超过最大需求量。
               (3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
               (4)当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。
               对于这些内容,关键在于融会贯通地理解与应用,为了帮助考生更好地理解,下面,我们通过一个例子来说明银行家算法的应用。
               假设系统中有三类互斥资源R1、R2和R3,可用资源数分别是9、8和5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示。进程按照P1→P2→P4→P5→P3序列执行,系统状态安全吗?如果按P2→P4→P5→P1→P3的序列呢?
               
               进程对资源的最大需求量和已分配资源数
               在这个例子中,我们先看一下未分配的资源还有哪些?根据试题给出的条件,从上表中可以看出,很明显,还有2个R1未分配,1个R2未分配,而R3全部分配完毕。
               按照P1→P2→P4→P5→P3的顺序执行时,首先执行P1,这时由于其R1、R2和R3的资源数都未分配够,因而开始申请资源,得到还未分配的2个R1,1个R2。但其资源仍不足(没有R3资源),从而进入阻塞状态,并且这时所有资源都已经分配完毕。因此,后续的进程都无法得到能够完成任务的资源,全部进入阻塞,死锁发生了。
               而如果按照P2→P4→P5→P1→P3的序列执行时:
               (1)首先执行P2,它还差1个R2资源,系统中还有1个未分配的R2,因此满足其要求,能够顺利结束进程,释放出2个R1、2个R2、1个R3。这时,未分配的资源就是:4个R1、2个R2、1个R3
               (2)然后执行P4,它还差一个R3,而系统中刚好有一个未分配的R3,因此满足其要求,也能够顺利结束,并释放出其资源。因此,这时系统就有5个R1、4个R2、1个R3。根据这样的方式推下去,会发现按这种序列可以顺利地完成所有的进程,而不会出现死锁现象。
               从这个例子中,我们也可以体会到,死锁的四个条件是如何起作用的,只要打破任何一个条件,都不会产生死锁。
               解决死锁的策略
               对待死锁的策略主要有:
               (1)死锁预防:破坏导致死锁必要条件中的任意一个就可以预防死锁。例如,要求用户申请资源时一次性申请所需要的全部资源,这就破坏了保持和等待条件;将资源分层,得到上一层资源后,才能够申请下一层资源,它破坏了环路等待条件。预防通常会降低系统的效率。
               (2)死锁避免:避免是指进程在每次申请资源时判断这些操作是否安全,例如,使用银行家算法。死锁避免算法的执行会增加系统的开销。
               (3)死锁检测:死锁预防和避免都是事前措施,而死锁的检测则是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。
               (4)死锁解除:这是与死锁检测结合使用的,它使用的方式就是剥夺。即将某进程所拥有的资源强行收回,分配给其他的进程。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2022年上半年
   系统分析师
   上午试卷 综合知识
第46题
选择题
某系统中有5个并发进程竞争资源R。假设每个进程都需要3个R,那么最少需要有()个R,才能保证系统不会发生死锁。

43%
   2020年下半年
   系统分析师
   上午试卷 综合知识
第47题
选择题
在进程资源有向图中,圆圈表示进程,方框表示资源,方框内的小圆数表示资源数。当有向边(或称请求边)由进程指向资源时,表示申请一个资源;当有向边(或称分配边)由资源指向进程时,表示获得一个资源。假设系统中存三个进程P1、P2和P3,两种资源R1、 R2,且R1的资源数等于3, R2的资源数等于3。如果进程资源图如图(a)和图b)所示, 那么图(a)中(46):图(b)中(47)。

42%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有