死锁

本文介绍了死锁的概念,包括定义、四个必要条件和死锁建模。接着详细阐述了处理死锁的四种算法:鸵鸟算法、死锁检测与恢复(包括检测方法和恢复策略)、死锁避免以及死锁预防。讨论了如何通过破坏死锁条件避免和处理死锁,特别提到了银行家算法和资源编号策略。
摘要由CSDN通过智能技术生成

一、概述

1.1 定义

如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么该进程集合就是死锁的。一般我们所说的死锁为资源死锁。通信死锁可以通过设立超时机制来解决。

1.2 死锁的条件

1)互斥等待(每个资源要么已经分配给了一个进程,要么就是可用的)
2)占有和等待条件(已经得到了某个资源的进程可以再请求新的资源)
3)不可抢占条件(已经分配给一个进程的资源不能强制性的被抢占,它只能被占有它的进程显示的释放)
4)循环等待条件(死锁发生时,系统中一定有由两个或两个以上的进程组成一条环路,该环路中的每个进程都在等待着下一个进程所占有的资源)

1.3 死锁建模

用有向图表示,圆形表示节点,方形表示资源,从资源节点到进程节点的有向边代表该资源已被请求、授权并被进程占用,从进程节点到资源节点的有向边表明当前进程正在请求该资源,并且该进程已被阻塞,处于等待该资源的状态。如下图所示。
这里写图片描述

二、处理死锁的算法

一般有四种处理死锁的策略:
1)忽略该问题,也许如果你忽略它,它也会忽略你
2)检测死锁并恢复,让死锁发生,检测它们是否发生,一旦发生死锁,采取行动解决问题
3)仔细对资源进行分配,动态的避免死锁
4)通过破坏引起死锁的四个必要条件之一,防止死锁的发生

2.1 鸵鸟算法

不避免发生死锁,当发生死锁时,手动处理,如重启,适用于发生死锁的概率很小,并且出现之后处理死锁会花费很大的代价。

2.2 死锁检测和恢复

2.2.1 每种类型一个资源的死锁检测

算法步骤如下图所示
<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值