一 、了解进程资源图

二 、化简资源分配图
方法步骤

  • 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的
  • 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来
  • 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。
  • 第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。

如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是“死锁定理”。

  • 第一步:先看R1资源,它有三个箭头是向外的,因此它一共给进程分配了3个资源,此时,R1没有空闲的资源剩余。
  • 第二步:再看R2资源,它有一个箭头是向外的,因此它一共给进程分配了1个资源,此时,R2还剩余一个空闲的资源没分配。
  • 第三步:看完资源,再来看进程,先看进程P2,它只申请一个R1资源,但此时R1资源已经用光了,所以,进程P2进入阻塞状态,因此,进程P2暂时不能化成孤立的点。
  • 第四步:再看进程P1,它只申请一个R2资源,此时,系统还剩余一个R2资源没分配,因此,可以满足P1的申请。这样,进程P1便得到了它的全部所需资源,所以它不会进入阻塞状态,可以一直运行,等它运行完后,我们再把它的所有的资源释放。相当于:可以把P1的所有的边去掉,变成一个孤立的点,如下图所示:
  • 第五步:进程P1运行完后,释放其所占有的资源(2个R1资源和1个R2资源),系统回收这些资源后,空闲的资源便变成2个R1资源和1个R2资源,由于进程P2一直在申请一个R1资源,所以此时,系统能满足它的申请。这样,进程P2便得到了它的全部所需资源,所以它不会进入阻塞状态,可以一直运行,等它运行完后,我们再把它的所有的资源释放。相当于:可以把P2的所有的边都去掉,化成一个孤立的点,变成下图:

    由于这个资源分配图可完全简化,因此,不会产生死锁。
    而如果资源分配图中的点,最终不能够化成孤立的点,则进程资源图不能够完全简化,从而会发生死锁。

死锁定理与资源分配图化简法相关推荐

  1. 资源分配图化简法---死锁的检测方法

    一 .了解进程资源图 二. 化简资源分配图 方法步骤 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞("不阻塞"即:系统有足够的空闲资源分配给它)的 第二步:把不阻塞 ...

  2. 操作系统------资源分配图化简

    1.资源分配图: 2.资源分配图化简: 方法步骤 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞("不阻塞"即:系统有足够的空闲资源分配给它)的: 第二步:把不阻塞的 ...

  3. 数字逻辑笔记7丨2.5逻辑函数卡诺图化简法

    卡诺图的构成 1.卡诺图的构成 一种图形化简法,在逻辑设计中广泛应用 卡诺图:一种平面方格图,每个小方格代表一个最小项,又叫"最小项方格图" 卡诺图可以视为真值表图形化的结果 n个 ...

  4. (五)《数电》——化简法(公式化简法和卡诺图化简法)

    目录 公式化简法 指定器件的逻辑函数化简 最小项 定义 性质 ​编辑 最大项 定义 性质 两者之间的关系 "最小项之和"形式 "最大项之积"形式 卡诺图 定义 ...

  5. 卡诺图化简法注意事项+竞争冒险知识点总结

    今天反思一下卡诺图化简法中的注意事项.另,文章太短被限流了,因此补充一下竞争冒险相关的知识点. 一.卡诺图化简法 卡诺图方法在这里不介绍了,这种方法看起来简单,但如果不熟悉的话很容易出错,因此要对花圈 ...

  6. FPGA:逻辑函数的卡诺图化简法

    文章目录 最小项与最小项表达式 最小项的定义 最小项的性质 逻辑函数的最小项表达式 卡诺图化简法 用卡诺图表示逻辑函数 卡诺图的引出 两变量卡诺图 三变量卡诺图 四变量卡诺图 已知逻辑函数真值表,画卡 ...

  7. 数字逻辑代数基础——基本定理、公式与卡诺图化简法、格雷码、LSFR等

    复习一下数字电路,下次就省事直接看自己写的了. 目录 1.常用门电路图 2.逻辑代数的基本定理----化简时比较好用 3.化简逻辑函数时几个关键的公式(A'代表A的非) 4.格雷码与二进制的转换 5. ...

  8. 一般时序电路设计(次态卡诺图化简法)

    次态卡诺图 没有用到的状态用xxxx表示,当作约束项. 四个状态变量要分成四个卡诺图 Q3*,Q2*Q1*Q0* 四个卡诺图 对于Q3*的卡诺图,将次态卡诺图的每一行的左数第一个数填入Q3*的卡诺图的 ...

  9. 数字电路3(逻辑函数的卡诺图化简法)

    1.最小项的定义及其性质 2.逻辑函数的最小项表达式 3.用卡诺图表示逻辑函数 4.用卡诺图化简逻辑函数 5.含无关项的逻辑函数及其化简

最新文章

  1. Httpservlet cannot be resolved to a type的原因与解决方法
  2. ZT:成熟是一种明亮而不刺眼的光辉
  3. 软件测试 图覆盖,软件测试(四)——图覆盖
  4. mysql主主互备架构
  5. centos6.5安装redmine2.6
  6. EasyUI:datagrid分页显示+嵌入select下拉选项框
  7. 方舟综合指令代码大全系统综合
  8. 开源 ASP.NET CMS
  9. 内涵图:从明天起,做一个有内涵的人
  10. 计算机英语 自我介绍,计算机专业学生面试英语自我介绍
  11. JAVA计算机毕业设计校园线上点餐系统Mybatis+源码+数据库+lw文档+系统+调试部署
  12. Android手机上,利用bat脚本模拟用户操作
  13. Billy Belceb病毒编写教程---Win32篇
  14. NewCoder:买苹果
  15. 从视频中截取图像opencv python
  16. DevOps-jenkins-流水线优化
  17. 【英语论文】英汉委婉语的文化价值和民族特质比较(节选)
  18. 100集华为HCIE安全培训视频教材整理 | Agile Controller终端安全管理特性(三)
  19. 计算机十大算法应用 知乎,2019 智源·知乎看山杯算法大赛收官:7 支团队脱颖而出,单人队荣摘桂冠!...
  20. 【小白入门】Socket和webSocket入门 这一篇就够了!用php的Socket自己实现简单webSocket服务器!

热门文章

  1. hive表信息查询:查看表结构、表操作、建表语句
  2. Linux环境安装python3报错:“HTTP Error 416 Requested Range Not Satisfiable 正在尝试其它镜像”的解决方法
  3. delphi cef写入html,Delphi XE 10.2.3使用CEF4Delphi取网页元素时碰到nbsp;变问号?的处理...
  4. TLC5916IDR
  5. 找圆算法((HoughCircles)总结与优化
  6. python爬虫爬取新闻实战01:小白如何迅速学会爬虫爬取上千条新闻
  7. docker以及docker-compose 使用加速器部署
  8. mflac0这个格式解码不成功
  9. Excel交叉引用及其应用实例
  10. GBC代理“花生漫画PEANUTS”,遭遇侵权账户冻结应该怎么处理?