【操作系统原理概述】第五章 死锁

第五章 死锁

5.1 死锁概念

  • 5.1.1 五个哲学家就餐问题
    【操作系统原理概述】第五章 死锁

  • 5.1.2 死锁的定义

    • (1)两个/多个进程无限期地等待永远不会发生的条件的一种状态
    • (2)已经拥有了资源又申请其他进程的资源

5.2 死锁的原因

  • (1)系统资源有限
  • (2)并发进程推进顺序不当
  • (3)不正确的P-V操作(如生/消问题中的P(empty)和P(mutex)的顺序问题
  • (4)死锁结论:参与死锁的进程至少有2个;已有2个占有的资源;死锁的进程一直在等待;死锁大量的消耗资源

5.3 死锁预防策略

  • 5.3.1 必要条件

    • (1)互斥条件:独占性
    • (2)不剥夺条件:不允许抢夺独占的资源
    • (3)部分分配条件:边运行边临时申请资源
    • (4)环路条件:多个进程构成占用环路
  • 5.3.2 打破方式

    • (1)预防死锁:四者选其一即可预防死锁
    • (2)避免死锁:在资源分配过程中计算不死锁的分配,并避免其产生
    • (3)检测和恢复死锁:允许死锁发生并即时清楚死锁状态
    • (4)预先静态分配法:(破坏部分分配条件)具体为在程序运行时一次性将资源全部都分配给他
    • (5)有序资源分配法:(即打破环路条件)将每个资源设定唯一编号,每次申请资源时规定只能申请更大编号的资源(在分配时检测序号是否是递增的,而拥有最大资源的进程必会执行完)
    • (6)鸵鸟策略:Windows和LINUX均采用此策略,既不处理死锁(解决死锁开销太大,得不偿失)

相关思维导图

【操作系统原理概述】第五章 死锁