北航961操作系统-进程死锁

进程死锁

一、死锁的概念

死锁定义:一组进程中,每个进程都无限等待被该组进程中其它进程所占有的资源,在无外力介入的条件下,将因永远分配不到资源而无法运行的现象。

死锁发生的四个必要条件:

  1. 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放
  2. 请求和占有条件:指进程已经占有至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放
  3. 不可剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放
  4. 环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源

二、处理死锁的基本方法

预防死锁(静态策略)

目的在于提前打破死锁形成的几个必要条件

  1. 打破互斥条件:即允许进程同时访问某些资源(资源固有属性难改变)
  2. 打破占有且申请条件:可以实行资源预先分配策略,一次性分配所需的资源。缺点:所需资源不可预测,资源利用率低,降低进程的并发性
  3. 打破不可剥夺条件:即允许进程强行从占有者那里夺取某些资源。这种预防死锁的方法实现起来困难,会降低系统性能
  4. 打破循环等待条件:实行资源有序分配策略。即把资源事先分类编号,按号分配,所有进程对资源的请求必须严格按资源序号递增的顺序提出,使进程在申请,占用资源时不会形成环路。这种策略与前面的策略相比,资源的利用率和系统吞吐量都有很大提高。缺点:限制了进程对资源的请求,难以合理编号资源,增加了进程对资源的占用时间

死锁避免(动态策略)

它不限制进程有关资源的申请,而是对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配。即分配资源时判断是否会出现死锁,有则加以避免。如不会死锁,则分配资源。

安全序列:一个序列{P1,P2,…,Pn} 安全的,是指若对于每一个进程Pi,它需要的附加资源可以被系统中当前可用资源加上所有进程Pj(j < i)当前占有资源之和所满足,则{P1,P2,…,Pn}为一个安全序列。
如果系统不存在这样一个安全序列,则系统是不安全的。
安全状态:存在安全序列
不安全状态:不存在安全序列

银行家算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
银行家算法的整体思路就是先试着分配这次请求所需的资源,然后用安全性算法检测是否处于安全状态,而安全性算法的思路就是逐个找所需资源数量少的进程分配资源,然后看是否能够满足所有的进程。

  • 允许互斥、部分分配和不可抢占,可提高资源利用率
  • 要求事先说明最大资源要求,在现实中很困难

死锁检测及解除

保存资源的请求和分配信息,利用某种算法对这些信息加以检查,以判断是否存在死锁。死锁检测算法主要是检查是否有循环等待。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其实RAG算法和安全性算法没什么区别,都是逐个给所需资源少的进程分配资源,检查到最后是否能够满足所有进程。

死锁解除:重要的是以最小的代价恢复系统的运行,死锁解除后,释放资源的进程应恢复它原来的状态,才能保证该进程的执行不会出现错误。

  • 撤销进程法:使全部死锁的进程夭折掉;按照某种顺序逐个地撤消(回退)进程,直至有足够的资源可用,死锁状态消除为止
  • 资源剥夺法:使用挂起/激活挂起一些进程,剥夺它们的资源以解除死锁,待条件满足时,再激活进程

小结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾宁安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值