当前位置: 首页 > news >正文

死锁相关概念

1. 死锁的定义:产生死锁的一组进程中的每个进程都在等待该组进程中其他进程所拥有的资源,使得所有的进程都无法向下推进,即为自锁。(专业定义就是:形成的资源分配图(无环)无法化简完全)。
2. 死锁产生的原因:四个原因,互斥性、不可剥夺、请求和保持、循环等待。
3. 解决死锁的四种方法:
(1)死锁的预防:破坏死锁产生的三个(互斥性一般无法破坏)条件之一即可。
 1)破坏不可剥夺条件:或者如果所请求的资源无法满足,那么之前具有的也会释放。
 2)破坏请求和保持条件:必须一次性将所需要的资源全部分给它,如果无法全部分配就一个也不给。
 3)破坏循环等待条件:给资源编号,顺序资源分配法。在过程中,只要申请了资源编号为Ri的资源,以后的申请就只能申请资源编号大于Ri的。
(2)死锁的避免:安全性检查算法。先看能不能给他,再假设给他,看是否存在一条安全性序列,不存在的话就不安全。(不安全的状态有可能会导致死锁,安全状态不会的)。
(3)死锁的检测:构造资源分配表,看是否能够化简完全(即看是否存在环路)。
(4)死锁的解除:一般是撤销一部分进程使得死锁解除。
4. 死锁的避免(安全性检查:银行家算法)
(1)首先判断资源的请求是否正确:即首先请求的资源<=需要的资源数并且系统具有的资源>请求的资源。
(2)安全性检查:然后假设分给它,看是否会进入不安全状态。
 


http://www.mrgr.cn/news/40439.html

相关文章:

  • 足球青训后台管理系统:Spring Boot实现指南
  • VMware Aria Automation Orchestrator 8.18 发布,新增功能概览
  • 动态规划最低票价
  • 【卡尔曼滤波】 Kalman Filter 原理详解与公式推导
  • 解决银河麒麟中`/etc/sudoers`权限问题
  • 《如何高效学习》
  • 面试金典题3.2
  • # VirtualBox中安装的CentOS 6.5网络设置为NAT模式时,怎么使用SecureCRT连接CentOS6.5系统?
  • 713. 乘积小于 K 的子数组 滑动窗口
  • docker安装kafka-manager
  • 【分布式微服务云原生】OpenFeign:微服务通信的瑞士军刀
  • java 从基础到入门 到架构师所需要学习的路线
  • 掌握马丁格尔交易策略:Anzo Capital昂首资本教你盈利的6大原则
  • CentOS 7 系统中安装与配置 Telnet 服务详解(使用非root用户登录)
  • 基于SSM的农产品仓库管理系统【附源码】
  • 解决方案:机器学习中,回归及分类常用的模型评估指标有哪些
  • 深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
  • 【d57】【sql】1661. 每台机器的进程平均运行时间
  • 【Python报错已解决】 Running setup.py install for wxPython did not run successfully.
  • 将 Intersection Observer 与自定义 React Hook 结合使用