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

  • 相关阅读:
    .NET开源项目
    关于微信号的校验
    java 中关于synchronized的通常用法
    关于java 定时器的使用总结
    新的博客已经启用,欢迎大家访问(402v.com)
    Hadoop综合大作业
    hive基本操作与应用
    理解MapReduce计算构架
    熟悉HBase基本操作
    第三章 熟悉常用的HDFS操作
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13050729.html
Copyright © 2011-2022 走看看