码迷,mamicode.com
首页 > 其他好文 > 详细

死锁处理策略和死锁预防

时间:2019-08-17 18:29:52      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:请求   需求量   idt   贷款   最大的   占用   思想   严格   性能   

死锁处理策略

  1.预防死锁

    设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以预防发生死锁

  2.避免死锁

    在资源的动态分配中,用某种方法防止系统进入不安全状态。从而避免死锁。

  3.死锁检测和解除

    无需采取任何限制性措施,允许进程在运行过程中发生死锁。通过系统检测机构及时地检测死锁的发生,然后采取某种措施解除死锁。

预防死锁和避免死锁都是属于事先防范策略,但预防死锁的限制条件比较严格,实现起来较为简单,但往往导致系统的效率低,资源利用率低;避免死锁的限制条件相对宽松,资源分配后需要通过算法来判断是否进入不安全状态,实现起来较为复杂。

技术图片

死锁预防

防止死锁的发生只需要破坏死锁产生的四个必要条件之一即可。

死锁避免

死锁避免同样是属于事先预防的策略,但并不是事先采取某种限制措施破坏死锁的必要条件,而是在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。这种方法所实施加的限制条件较弱,可以获得较好的系统性能。

银行家算法是著名的死锁避免算法。

它的思想是:把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求 分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源。

否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数和本次申请的资源数之和是否超过了该进程对资源的最大的需求量。若超过则拒绝分配资源,过没有超过则再测试系统现存的资源能否满足该进程尚需的最大的资源量,若能满足则按当前的申请分配资源,否则也要推迟。

解除死锁的方法:

  1.资源剥夺法:挂起某些死进程并抢夺它的资源,以便让其他进程继续推进

  2.撤销进程法:强制撤销部分,甚至全部死锁进程并剥夺这些进程的资源

  3.进程回退法:让进程回退到足以避免死锁的地步

死锁处理策略和死锁预防

标签:请求   需求量   idt   贷款   最大的   占用   思想   严格   性能   

原文地址:https://www.cnblogs.com/littleswan/p/11369297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!