前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机操作系统学习笔记_进程管理--死锁

计算机操作系统学习笔记_进程管理--死锁

作者头像
小小科
发布2018-05-02 12:12:21
7140
发布2018-05-02 12:12:21
举报
文章被收录于专栏:北京马哥教育北京马哥教育

进程管理

--死锁

一、死锁的概念

1.死锁的概念

  系统中两个或两个以上的进程无限期地相互等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁。

2.死锁产生的原因

  (1)进程推进顺序不当

  (2)对互斥资源的分配不当[并不是资源不足,但是剩余资源不足是有可能产生死锁的]。

 必须要指出的是,系统资源不足并不是产生死锁的原因,进程资源如果不足则进程就不会被创建,只有在资源部分分配以后,剩余的资源不能满足某些个进程的请求,造成进程集无法推进的现象才是死锁。

3.产生死锁的四个必要条件[必须满足四个条件,才有可能产生死锁]

互斥条件: 任一时刻只允许一个进程使用资源。

非剥夺条件: 进程已经占用的资源,不会被强制剥夺。

占用并请求条件: 进程占有部分资源,申请更多的资源,且不会释放已经占有的资源。

循环等待: 请求资源的进程形成了循环。

二、死锁处理策略

  对死锁的处理,常用的方法有:忽略死锁死锁的检测与恢复死锁的避免死锁的预防

1.死锁忽略

  死锁忽略最典型的算法是鸵鸟算法。

2.死锁检测和恢复

 死锁的检测方法:

  1).资源分配图算法

  2).资源矩阵法

 恢复死锁常用的方法:

方法

功能

资源剥夺法

挂起某些死锁进程,并抢占它的资源。

进程撤销法

通过撤销占有资源多的进程或代价量小的进程,以恢复死锁。

进程回退法

设置还原点,让一个或多个进程回退到足以解除死锁的地步。

重新启动系统

代价最大,一切从头开始。我们要尽量避免采用此方法。

3.死锁避免

 1).安全与不安全状态

   某一时刻,系统能按某种顺序为每个进程分配其所需资源,使每个进程都能顺利地完成,则称此时系统处于安全状态。反之,称之为不安全状态。

 2).银行家算法

   银行家算法问题描述是:一个银行家把他的固定资金借给若干顾客,使这些顾客能满足对资金的要求又能完成其交易,也使银行家可以收回全部的现金。只要不出现一个顾客借走所有资金后还不够、还需要借贷,则银行家的资金应是安全的

 银行家算法示例

4.死锁预防

   所谓死锁预防,就是采用某种策略,限制并发进程对资源的请求,使系统在任何时刻都不满足死锁的四个必要条件。死锁预防主要是针对破坏四个必要条件进行的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 进程管理
    • --死锁
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档