死锁处理类型浅析

2019/6/6,见于习题,搜索相关后总结如下:

题目:若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中正确的是:B.

I. S1会限制用户申请资源的顺序,而S2不会 
II. S1需要进程运行所需要的资源总量信息,而S2不需要 
III. S1不会给可能导致死锁的进程分配资源,而S2会

A.I、II 
B.II、III 
C. I、III 
D. I、II、III

关于死锁的处理主要有三种类型:

1.死锁预防
2.死锁避免算法
3.死锁检测
而针对这三种类型,掌握三种对应的关键类型即可。

死锁预防典型的是顺序资源分配法,限制进程申请资源的顺序!后面的进程只能申请编号更大的资源。

死锁避免算法,典型的是银行家算法,不会限制申请资源的顺序,但是会限制分配资源的顺序,避免进入不安全状态!因此,需要知道全局性的资源需求矩阵以及资源总量。

死锁检测,是最宽松的,啥也不限制,只有当出现死锁且被检测到时才会去处理解除。因此,这种灵活性的算法在Unix上实现了。常用资源分配图结合死锁定理检测。

综上,II、III才是正确的。要明白限制用户申请资源的顺序是很大的限制,限制分配资源的顺序是稍微宽松些的限制,检测是不做限制。

还有,这里有个词:用户。似乎很困惑,其实指的是程序员,或者写代码需要控制进程申请资源的人。简单抽象到进程即可。
--------------------- 
(主要)参考博客原文地址:https://blog.csdn.net/u011240016/article/details/53117523 作者:QUETAL 

零碎参考点就不一一放上

死锁的必要条件有:

1、互斥条件(任一时刻一个资源仅为一个进程独占)

2、占有且等待条件

3、不剥夺条件(任一进程不呢从其他资源处抢夺资源)

4、循环等待条件(存在一个循环等待链)

死锁的发生必定有上述四个条件的同时成立,同理,只要破坏四个条件中的任何一个就可预防死锁的发生

 

A-->“死锁的预防”是破坏四个必要条件的任何一个;“死锁的避免”是掌握系统中并发进程的状态和与这些进程有关的资源动态申请情况,做出合理选择,避免死锁的发生,“银行家算法”属于“死锁的避免”

C-->“不安全状态”并不一定导致死锁的发生

D-->“银行家算法”属于死锁的避免,没有破坏死锁发生的四个必要条件中的任何一个

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值