操作系统---死锁

本文介绍了操作系统中的死锁概念,以及四种处理死锁的策略:忽略(鸵鸟算法)、检测与恢复、避免(如银行家算法)和预防。详细讨论了死锁检测的资源分配图和矩阵算法,以及恢复策略,包括抢占、回滚和杀死进程。同时,解释了死锁预防中破坏四个必要条件的尝试,如破坏互斥、保持和等待、不可抢占和循环等待条件。
摘要由CSDN通过智能技术生成

1. 死锁定义

如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的——《现代操作系统》

2. 四种死锁处理策略

  • 1)忽略死锁——鸵鸟算法,把头埋进沙子里,当做什么都没发生。
  • 2)检测死锁并恢复——死锁检测和死锁恢复
  • 3)死锁避免——银行家算法,仔细对资源进行分配,动态地避免死锁
  • 4)死锁预防——破环引起死锁的四个必要条件,防止死锁发生
2.1 鸵鸟算法

处理死锁最简单的办法就是忽略它,当它实际发生并影响系统运行时,手动干预,重启恢复。这是一种不是办法的办法,当死锁带来的损失比为了消除死锁而付出的代价小时,比如死锁发生几率很小或者死锁发生对用户影响很小,可以使用鸵鸟算法。比如死锁每一年发生一次,而系统每个月都会因为硬件故障、编译器错误或者操作系统故障而崩溃一次,那么就没有必要以性能损失和可用性代价去防止死锁。

2.2 死锁检测和恢复

采用这种策略系统并不会阻止死锁产生,而是当检测到死锁后采取措施进行恢复,所以关键是如何检测死锁和从死锁状态中恢复。

2.2.1 死锁检测

对于每种类型只有单一资源的情况,可以通过构造资源分配图,然后检测是否存在闭环的方法来检测死锁,当图中存在闭环时说明该环上的进程处于死锁状态。
当一种类型的资源存在多个实例时,则需要通过基于矩阵的算法进行检测。
死锁检测的关键问题在于何时去检测,一种方法是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值