chapter06_死锁_2_死锁概述

本文介绍了死锁的定义和分类,包括资源死锁和通信死锁,其中资源死锁最常见。阐述了资源死锁的四个必要条件,即互斥、占有和等待、不可抢占、环路等待条件。还介绍了资源分配图的表示方法,并给出处理死锁的策略,如忽略、检测恢复、避免和预防。
  • 死锁

    (1) 定义

    如果一个进程集合中,每个进程都在等待只能由该集合中的其他进程才能引发的事件, 那么该进程集合__死锁__

    (2) 分类

    资源死锁: 等待的事件是释放该进程集合中其他进程所占有的资源

    通信死锁: 一组通信进程都在等待其他进程传递的消息,而由于某种原因通信信道为空且没有超时机制

    (3) 资源死锁是死锁最常见的类型。资源既可以是硬件资源(如打印机、CD-ROM),也可以是软件资源(如数据库中的表)

  • 资源死锁的条件

    以下__4个__条件是资源死锁的__必要条件__, 也就是说,只要破坏了其中一个,死锁便不会发生

    (1) 互斥条件

    资源要么已经分配给了唯一的进程,要么就是可用的未分配状态

    (2) 占有和等待条件

    已经占有了某个资源的进程,可以继续请求新的资源

    (3) 不可抢占条件

    已经分配给某个进程的资源, 不能被其他进程强制性抢占, 只能被占有它的进程显式释放

    (4) 环路等待条件

    死锁发生时, 系统一定由有两个或两个以上的进程组成的一条环路, 该环路中每个进程都在等待着下一个进程所占有的资源

  • 资源分配图

    (1) 进程用方框表示, 资源用圆形表示;

    (2) 资源R被进程P占有, 则箭头从R指向P;

    (3) 进程Q请求资源S, 则箭头从Q指向S

    (4) 示例

                  _
      (A) <----- |O|      表示进程O请求资源A
                 ---
    
                  _
      (B) -----> |P|      表示进程P占有资源B
                 ---
    
  • 处理死锁的策略

    (1) 忽略死锁 ———— 鸵鸟策略

    (2) 让死锁发生,检测死锁并恢复 ———— 死锁检测与恢复

    (3) 仔细对资源进行分配,动态地避免死锁 ———— 死锁避免

    (4) 破坏死锁的四个必要条件之一,防止死锁产生 ———— 死锁预防

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值