首页 > 试题广场 >

对资源编号,要求进程按照序号顺序申请资源,是破坏了死锁必要条

[单选题]

对资源编号,要求进程按照序号顺序申请资源,是破坏了死锁必要条件中的哪一条?(

  • 互斥
  • 请求与保持
  • 不可剥夺
  • 循环等待
举一个例子:
      假设有两个进程A和B,A运行中需要资源块 R1,R2 ,  B运行中也需要资源块 R1,R2 
      资源的获取(包含了获取锁和解锁的过程)是顺序的,如果A 运行资源的顺序是{R1,R2},B运行资源的顺序是{R2,R1},那么在他们同时运行时,A先拿了R1资源,B先拿了R2资源,就会导致A获取不到R2资源而不断等待,R1资源锁也无法释放,对于B进程,B拿不到资源R1,就会不断等待R1,同时不会释放R2资源,最终两个进程互相等待,形成死锁。
解决方案:
     A获取资源的顺序是{R1,R2},B获取资源的顺序是{R1,R2},那么当A拿到R1资源的时候,此时B等待R1资源,若没取到R1资源,B也不会
去对R2资源加锁和占有,最终A执行完释放资源,B开始完成本有的任务。
发表于 2017-05-07 16:58:20 回复(0)
发生死锁的必要条件:
1.互斥:某段时间内,某一资源只能被一个进程占用
2.请求和保持:某一进程在无法申请到资源时,却对自己已经占有的资源保持不放;
3.不可抢占:未用毕的资源不可被抢占;
4.循环等待:发生死锁的进程组成一个进程-资源的循环链;
发表于 2018-09-05 09:03:51 回复(0)
互斥:某段时间内,某一资源只能被一个进程使用;
请求和保持:当进程申请部分资源失败的时候,不释放已经拥有的资源
不可抢占:未使用完的资源不能被抢占
环路等待:发生死锁的进程一定存在一个进程——资源的循环链
发表于 2018-09-06 15:14:57 回复(0)
互斥:某段时间内,某资源只能被一个进程占用。 请求和保持:某进程无法申请到下一个资源,却对自己之前已经获得的资源保持不放。 不可抢占:未用毕的资源不能被抢占。 循环等待:发生死锁时,必然存在 “进程——资源 ”循环链
发表于 2018-08-14 19:11:16 回复(0)