zoukankan      html  css  js  c++  java
  • 操作系统---死锁的检测和解除

    死锁的检测和解除

    资源分配图

    资源分配图是一种数据结构 :

    graph LR A[数据分配图] -->B[两种结点] A-->C[两种边] B-->D[进程结点:对应一个进程] B-->E[资源结点:对应一类资源,一类资源可能有多个] C-->F[进程结点->资源结点:表示进程想申请几个资源<每条边代表一个>] C-->G[资源节点->进程结点:表示已经为进程分配了几个资源<每条边代表一个>]

    如图:

    1591346986377

    用资源分配图判断系统是否死锁

    方法 :

    1591347046229

    e.x.

    没有死锁的资源分配图 :

    1591347095188

    死锁了的资源分配图 :

    1591347144597

    死锁的解除

    资源剥夺法

    挂起(暂时放在外存)某些 死锁 进程, 并抢占它的资源, 让这些资源分配给其他的死锁进程, 注意需要防止被挂起的进程长时间得不到资源而饥饿

    撤销进程法

    强制某些死锁进程, 并剥夺这些进程的资源.

    优点 : 实现简单

    缺点 : 代价大, 比如有些进程已经运行了很长时间甚至接近结束, 突然剥夺将功亏一篑

    进程回退法

    让一个或多个死锁进程回退到足以避免死锁的地步

    缺点 : 不太容易实现--系统需要记录进程的历史信息并设置还原点

    可以根据 :

    • 进程优先级
    • 已执行多长时间
    • 还要多久能完成
    • 已经使用了多少资源

    等方式决定对那个死锁进程执行解除方案


    ref : https://www.bilibili.com/video/BV1YE411D7nH?p=31

  • 相关阅读:
    可以让你少奋斗十年的工作经验 .
    MFC多线程编的可能
    MFC中使用ADO方式连接数据库
    vc 获取当前时间
    mfc EDIT字体颜色
    使用css让div半透明
    -----日积月累-----
    TP框架 ---空控制器和空操作
    TP框架常用配置
    TP框架主要文件夹注释
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13050729.html
Copyright © 2011-2022 走看看