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

死锁的处理策略-避免死锁

什么是安全序列

如果系统按照这种序列分配资源,每一个进程都能顺利完成,只要找出一个安全序列,这个系统就是安全状态,当然安全序列可能有很多个

如果资源分配之后,系统找不出任何一个安全序列,系统就进入了不安全状态,意味着之后可能会有进程无法顺利执行下去,当然如果有进程提前归还了一些资源,系统也有可能会重新回到安全状态,但是资源分配之前需要考虑最坏的情况

什么是系统的不安全状态,和死锁有什么联系

如果系统处于安全状态就一定不会发生死锁

如果系统处于不安全状态,就可能会发生死锁

因此在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求,这也是银行家算法的核心

银行家算法

在进程提出资源申请的时候,预先判断此次分配是否会导致系统进入不安全状态,如果会进入不安全状态,就暂时不答应此次请求,让进程先阻塞等待

银行家算法例子: https://www.bilibili.com/video/BV1YE411D7nH/?p=41&share_source=copy_web&vd_source=7b850f4882e6be926b6eb30758a00e34&t=726

1.检查此次申请是否超过之前声明的最大需求数

2.检查此次系统剩余的可用资源是否还能满足这次的请求

3.试探着分配,更改个数据结构

4.用安全性算法,检查这次分配是否会导致系统进入不安全的状态

安全性算法的步骤:

检查当前剩余的可用资源,是否能满足某个进程的最大需求,如果可以,就把该进程假如安全序列,并把该进程持有的资源全部回收

不断重复上述操作,看最终能否让所有进程都加入安全序列

http://www.hskmm.com/?act=detail&tid=21283

相关文章:

  • 7、微服务中 DTO、VO、PO、BO 的设计规范 - 指南
  • Gitee崛起:中国代码托管平台的自主创新之路
  • 9-30
  • 探索 Nim 中的 sequtils 与箭头语法 —— 立即计算与惰性计算的那些事
  • 250930
  • Gitee:中国开发者生态中的本土化代码托管领导者
  • 价值博弈白箱:元人文AI的可审计未来
  • 八段锦
  • Gitee崛起:中国开发者生态的破局者与赋能引擎
  • 【VMware Workstation】Debian 13 桌面版安装
  • B树,B+树技术分享
  • 无管理员权限电脑完成MySQL数据库创建流程
  • 机台设备数据管理:提升生产效率的关键策略
  • 【瑶池数据库动手活动及话题精选(体验Dify on DMS,参与Meta Agent讨论)】
  • 时钟设计优化实战
  • 河南外贸建站 | 河南外贸建站公司 | 河南外贸独立站定制 - 详解
  • kuboard使用的etcd空间清理(3个etcd)
  • 死锁的处理策略-预防死锁
  • 跨网文件安全交换系统:提升数据传输安全性和合规性
  • 随笔
  • 强化学习、深度学习、大模型、智能体
  • Node生态中最优雅的数据库事务处理机制
  • 详细介绍:扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
  • 期货市场API对接完全指南:实时行情获取与实战应用
  • Tomcat使用redis管理session
  • NOC片上网络总线初探
  • AT_agc037_c [AGC037C] Numbers on a Circle
  • 记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档) - 实践
  • redis数据连接写法
  • 缩放 div