首页 > 试题广场 >

关于死锁的说法正确的有?

[不定项选择题]
关于死锁的说法正确的有?


  • 竞争可剥夺资源会产生死锁
  • 竞争临界资源会产生死锁
  • 在发生死锁时,必然存在一个进程—资源的环形链
  • 如果进程在一次性申请其所需的全部资源成功后才运行,就不会发生死锁。
炫头像
还有一种所谓的临时资源,这是指由一个进程产生,被另一个进程使用,短时间后便无用的资源,故也称为消耗性资源,如硬件中断、信号、消息、缓冲区内的消息等,它也可能引起死锁。例如,SI,S2,S3是临时性资源,进程P1产生消息S1,又要求从P3接收消息S3;进程P3产生消息S3,又要求从进程P2处接收消息S2;进程P2产生消息S2,又要求从P1处接收产生的消息S1。如果消息通信按如下顺序进行:
P1: ···Relese(S1);Request(S3); ···
P2: ···Relese(S2);Request(S1); ···
P3: ···Relese(S3);Request(S2); ···
并不可能发生死锁。但若改成下述的运行顺序:
P1: ···Request(S3);Relese(S1);···
P2: ···Request(S1);Relese(S2); ···
P3: ···Request(S2);Relese(S3); ···
则可能发生死锁。
所以选BCD,CD选项比较明显,不再赘述
摘自百度百科
编辑于 2016-03-04 13:41:24 回复(2)
产生死锁的四个必要条件:互斥+请求保持+不可剥夺+循环等待
A不可剥夺
B不可剥夺
C循环等待
D请求保持

发表于 2021-07-21 23:32:25 回复(0)
竞争临时资源会产生死锁
在发生死锁时,必然存在一个进程—资源的环形链
如果进程在一次性申请其所需的全部资源成功后才运行,就不会发生死锁。
发表于 2017-04-14 10:19:13 回复(0)
首先,在做这道题时,需要知道死锁有哪些必要条件,必要条件是什么呢,就是说只要死锁,这些条件一定有成立。必要条件书上都有,照搬一下:
  1. 互斥条件:指进程对所分配的资源进行排它性使用,也就是说在某一段时间内,某资源只被一个进程占用,如果还有其它进程请求该资源,则请求的进程只能等待,直到该资源被释放。
  2. 请求和保持条件:指一个进程已经拥有了某些资源,但是它还需要其它资源,于是又提出新的申请,而该资源又偏偏被其它进程占用,此时该申请资源的进程产生了阻塞, 它又不释放自己已占有的资源。
  3. 不剥夺条件:指进程已获得的资源不能被剥夺,只有自己使用完之后才释放.( 可见如果资源可被剥夺,该条就不成立,所以A错 )
  4. 环路等待条件:指发生死锁的时候,一定存在一个环路:进程1-资源2(被进程2占用)-资源3(被进程3占用).............-进程n-资源1(被进程1占用)( 可见C正确 )
      选项AC上面已解答,还差BD,先看B, 其实我们只需要知道临时性资源这个东东就可以解出答案了.我刚开始忘记它是什么了,临界资源吗???后来翻开书,找到了.
       先举个例子: 
       永久性资源指不管你用不用,它就在那里,不消失.
       那么临时性资源指的是某些资源被一个进程产生, 被其它进程使用一段时间以后便没有利用价值的资源.也就是说人家只用一会儿, 用完你就可以该干嘛干嘛去.那它为什么可能会产生死锁呢.
        大家可以想一个,假如有3个进程P1,P2,P3
        
         p1产生s1资源, p2产生s2资源,p3产生s3资源,
        但是,p1还需要s2资源,p2还需要s3资源,p3还需要s1资源.
        这些资源都是进程产生的,但是进程结束后就消失的资源.
        如果请求不恰当,就会造成死锁,例如p1先请求s2,但是s2又请求下去, 三个进程都需要对方产生的临
        时资源才能运行, 死锁........................所以B也对;
        再看D,其实这个答案我之前觉得不对,后来想想,全部请求才可以运行,不运行这些资源就不是它的,
        它就不占用. 也就是说 计算机有几个资源,这些资源够谁用谁就运行,不够就不运行.因此也就不会出
        现某进程运行一半的时候需要请求新资源,但又请求不到而死锁。所以D也正确
        综上,答案BCD

        
发表于 2016-08-03 15:27:17 回复(0)
根据汤小丹老师的教材的描述:
  • 竞争可剥夺资源是不会引起死锁的,竞争不可剥夺资源才会引起死锁。
  • 产生死锁的原因包括竞争不可抢占资源、竞争可消耗性资源(又名临时资源)和进程推进顺序非法,因此B选项正确。
  • 预防死锁中的破坏循环条件中提到若发生死锁,一定存在进程-资源的循环链,我们预防死锁只需破坏循环等待条件,因此C选项正确。
  • 预防死锁的破坏请求和保持条件中提到,如果我们在进程运行开始之前,必须一次性地申请其在整个运行过程中所需的全部资源,因此D选项正确。
发表于 2020-12-23 21:28:37 回复(0)
已获资源不能被剥夺
发表于 2021-09-28 14:24:48 回复(0)
什么是临时资源
发表于 2021-05-05 12:34:21 回复(0)
<p>这题B选项不对,应该是临界资源,答案BCD</p>
发表于 2020-09-02 08:55:25 回复(0)
什么题吗这是,临时资源是啥子
发表于 2019-09-04 19:43:11 回复(0)
临时资源是指可消耗资源吧?竞争可消耗资源会引起死锁
发表于 2016-09-09 00:45:48 回复(0)
B选项是在疑惑。竞争临界资源才会产生死锁吧,临时资源是什么?临时资源也可以是每个进程内部的、或者每个线程内部的局部资源,都不是共享的,时候何谈竞争一说。
发表于 2016-08-30 15:18:15 回复(1)
B不对吧,竞争的临时资源是可剥夺的,那就不对了,应该选CD
发表于 2015-08-07 21:16:38 回复(2)
CD
发表于 2014-12-30 22:18:18 回复(0)