目录

死锁的条件

死锁的处理方式

1、死锁预防

2、死锁避免

3、死锁检测与恢复

4、死锁忽略


死锁的条件

死锁的四个条件,缺一不可

  • 互斥条件:对必须互斥使用的资源的争抢才会导致死锁。
  • 不剥夺条件:进程所获得的资源未使用完之前,不能被其他进程强行夺走,只能主动释放。
  • 请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己有的资源保持不放。就像很窄的桥,两个人都要去对面,但谁又都无法让出位置来。
  • 循环等待条件:存在一种进程资源的循环等待,链中的每一个进程已获得的资源同时被下一个进程所请求。想象有一个闭环,闭环上每个人都需要下一个人手上的某个资源,那么所有人都没办法满足。

下图就像我们的一个死锁

死锁的处理方式

1、死锁预防

  • 破坏互斥条件(创建一个队列,所有的请求都会被快速响应,然后队列逐渐将请求发送到处理器进行整理)
  • 破坏不剥夺条件(进程的某个资源得不到满足时,就必须立刻释放所持有的资源)
  • 破坏请求和保持条件(静态分配,进程在运行前就一次性申请全部的资源,不满足就不让允许,就像过桥时保证桥上没人才让通行,否则禁止通行)
  • 破坏循环等待条件(资源编号,进程必须按照编号递增的顺序请求资源,这样就不会出现持有大资源请求小资源的情况,也就不会有循环的等待)

2、死锁避免

银行家算法:进程提出资源申请时,先判断这次分配会不会导致系统进入不安全状态,如果会则不答应请求,让该进程阻塞。简而言之,请求不能大于手中的资源。这种算法也叫银行家算法。

3、死锁检测与恢复

检测方法通过死锁检测算法,下面以图的方式说明

能够消除所有边,就不会发生死锁如下图

不能消除所有边就会发生死锁。

*死锁恢复:**资源剥夺将死锁的进程挂起,释放资源;撤销进程,直接将部分或者全部死锁进程撤销;进程回退,让进程回退的足以避免死锁的地方。

4、死锁忽略

顾名思义,忽略这个死锁,死锁概率本不高,就算出现了也只是局部的死锁,直接不管反而能提高资源利用率与整体运行的速度,也有个好听的名字叫鸵鸟算法,这样性能会提升不少,大部分操作系统也采用死锁忽略的策略。

计算机操作系统——死锁的概念与处理相关推荐

  1. 计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)

    计算机操作系统--死锁 前言:死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进.如果死锁发生,会浪费大量的系统资源,甚至会导致系统崩溃. 关于死锁的结论: ...

  2. 计算机操作系统 死锁问题

    概念 条件是基础,在一定的原因下,产生结果 死锁三胞胎 死锁 僵持,消耗时间,双方都占用了部分资源,不释放 活锁 双方互相谦让,都不占用资源 饥饿 谦让的一方一直等待,无法占有资源,导致饥饿问题 死锁 ...

  3. 计算机操作系统——死锁

    文章目录 一.相关知识 1.可重用性资源和消耗性资源 2.可抢占性资源和不可抢占性资源 3.死锁定义 二.死锁产生的原因和必要条件 1.死锁产生的原因 2.死锁产生的必要条件 三.预防死锁的方法 1. ...

  4. 操作系统—死锁的概念

    建议将思维导图保存下来观看,或点击这里在线观看

  5. 【转载】计算机操作系统出现死锁的原因

    目录 1. 死锁的概念以及产生死锁的原因 1.1 死锁的定义 1.2 死锁产生的原因 1) 系统资源的竞争 2) 进程推进顺序非法 3) 死锁产生的必要条件 2. 死锁的处理策略 预防死锁 避免死锁 ...

  6. 【计算机操作系统基本概念】

    1.计算机操作系统的概念 计算机操作系统是指控制和管理计算机的软.硬件资源,合理组织计算机的工作流程,方便用户使用的程序集合. 2.操作系统的功能 1)处理机管理 2)存储管理 3)设备管理 4)文件 ...

  7. 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...

    文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...

  8. 操作系统(二十八)死锁的概念

    2.4.1 死锁的概念 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是"死锁".通俗一点就是我有一个资源你也有一个资 ...

  9. 计算机操作系统学习笔记_6_进程管理 --死锁

    一.死锁的概念 1.死锁的概念 系统中两个或两个以上的进程无限期地相互等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁. 2.死锁产生的原因 (1)进程推进顺序不当 (2)对互斥资源的分 ...

  10. 国防科大计算机考研大纲,2022年国防科技大学F1003计算机操作系统考研大纲及参考书目...

    2022年研究生入学考试自命题科目考试大纲 科目代码:F1003 科目名称:计算机操作系统 一.参考书目 1.<操作系统教程>(第5版),费祥林,高等教育出版社,2014年. 2.< ...

最新文章

  1. Objective-c在宏里拼接字符串
  2. Spring Boot 注册 Servlet 的3种方式
  3. android 照片拼接长图_我才发现,微信里面有一个功能,能将手机照片自动拼成长图...
  4. REVIT使用中遇到的各种问题汇总
  5. 设计模式-依赖倒转模式(面向接口编程)
  6. Python版冒泡法排序算法
  7. hibernate版本_Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)
  8. asc码转换 linux_Linux网络服务04——FTP文件传输服务
  9. ReportViewer 安装
  10. matlab线性代数命令大全,线性代数 - MATLAB 系统中文帮助手册
  11. 在使用刚体时的几个注意点和参数
  12. Mac:VMware 虚拟机 连接手机
  13. java做http接口
  14. 电视android怎么连接手机助手下载,投屏助手app下载 投屏助手(手机投屏到电视) for Android v2.0 安卓版 下载-脚本之家...
  15. CSR8670项目实战:BlueSiri轻智能蓝牙音箱
  16. 【Jquery练习】tab栏切换
  17. Jenkins远程命令执行漏洞(CVE-2018-1000861)
  18. 【信息安全案例】——网络信息面临的安全威胁(学习笔记)
  19. 【P1516】青蛙的约会
  20. DELL笔记本由Ubuntu改为Win10系统

热门文章

  1. 建立主DNS区域和辅助DNS区域的最佳实践
  2. 读《乔布斯的魔力演讲》
  3. Android面试题之Activity篇
  4. 99个互联网常用词汇,建议收藏“食用”
  5. 强行在MFC窗体中渲染Cocos2d-x 3.6
  6. 如果你觉得自己对 CSS 变量不熟悉,那么可以补充这个!
  7. 老男孩Day1作业(二):三级菜单
  8. 《缠中说禅108课》79:分型的辅助操作与一些问题的再解答
  9. 科研人必备图像处理软件—ImageJ
  10. linux英文论文范例,Argument essay官方主题范文三十六篇-经典英文议论文范例