zoukankan      html  css  js  c++  java
  • 《现代操作系统》—— 第12章 死锁

    1. 死锁的基本概念:
      • 死锁定义:在一组进程中,每个进程都无限等待该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。
      • 危害:如果死锁发生,会导致系统资源大量浪费,甚至导致系统崩溃


      • 发生死锁的原因:资源有限,或锁和信号量使用错误
      • 产生死锁的必要条件:
        • 互斥使用(资源独占):一个资源每次只能给一个进程使用
        • 占有且等待(请求和保持,部分分配):进程在申请新的资源的同时保持对原有资源的占有
        • 不可抢占(不可剥夺):资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放
        • 循环等待:存在一个进程等待队列{P1,P2,...,Pn},其中P1等待P2占有的资源,P2占有P3的资源,...,Pn等待P1占有的资源,形成一个进程等待环路
    2. 用图判断进程组内是否存在死锁:
      • 资源分配图:
      • 资源分配图画法说明:
      • 死锁定理:
      • 资源分配图的化简:


        • 画至最简后,如果图中所有节点都是孤立的,则说明没有死锁;否则说明系统中存在死锁
    3. 死锁的预防
      • 解决死锁的方法:
      • 预防死锁:
      • 死锁避免
        • 关于死锁避免的讨论——根据资源限制


        • 死锁避免的定义:


        • 安全序列的概念


        • 死锁避免的典例——银行家算法
          • 银行家算法也是基于上面对死锁避免的讨论,资源受限时,实时计算当前申请是否会导致不安全状态,从而决定是否进行资源分配。
    4. 死锁的检测与解除
      • 死锁检测:
        • 一个简单的死锁检测算法:
        • 死锁的解除
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/uestcliming666/p/13355983.html
Copyright © 2011-2022 走看看