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

银行家算法-操作系统中避免死锁的最著名算法

背景

有很多文章都会介绍银行家算法。在百度和CSDN上搜一搜能搜出很多来。很多同学会觉得这个算法很深奥,有些文章写的又很复杂,其实真的很简单。这里简单记录一下基本原理,然后大家再配合其他文章看,就能加深理解。

算法原理

银行家算法主要是为了解决死锁问题。CPU有资源相当于银行家有钱,很多进程争夺资源相当于很多客户争着贷款。银行家为了能满足所有客户的贷款需求,采取的办法是分批次循环放贷。先给需求小的客户放贷,等客户用完了收回贷款,这样资金就变多了,然后再给第二个客户放贷,然后再收回贷款再放贷。
为什么放贷要从小需求客户开始,因为银行家资源有限,上来就给大客户放贷,资源可能不够。
先给小客户放贷,收回贷款的时候能收回更多,资源就更多了。

这样放一批贷款,收一批贷款,把所有客户过一遍,都能满足需求,就是符合了安全性要求
这就是银行家算法中最重要的安全性算法。

按照这个顺序,有些客户的需求还是无法满足,达不到安全性需求,系统就需要挂起一部分进程,否则就会崩溃。

这个原理其实很好理解,上面的比喻可能不够精确,但是却是最好的理解途径了。
希望能帮到大家。

http://www.lryc.cn/news/388666.html

相关文章:

  • PCL 基于点云RGB颜色的区域生长算法
  • cube-studio开源一站式机器学习平台,在线ide,jupyter,vscode,matlab,rstudio,ssh远程连接,tensorboard
  • 1976 ssm 营地管理系统开发mysql数据库web结构java编程计算机网页源码Myeclipse项目
  • 技术派全局异常处理
  • 对于mysql 故障的定位和排查
  • 什么是电航空插头插座连接器有什么作用
  • 数据挖掘常见算法(分类算法)
  • 【深度学习】调整加/减模型用于体育运动评估
  • 重生之算法刷题之路之链表初探(三)
  • 哪吒汽车,正在等待“太乙真人”的拯救
  • HDC Cloud 2024 | CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验
  • 基于隐马尔可夫模型的股票预测【HMM】
  • PostgreSQL Replication Slots
  • centos7搭建zookeeper 集群 1主2从
  • Arrays.asList 和 java.util.ArrayList 区别
  • 代码随想录-Day44
  • CriticGPT: 用 GPT-4 找出 GPT-4 的错误
  • SpringBoot:SpringBoot中调用失败如何重试
  • 2024-06-24 问AI: 在大语言模型中,什么是ray?
  • 仓库管理系统09--修改用户密码
  • 在Spring Data JPA中使用@Query注解
  • 【UE5.1】Chaos物理系统基础——01 创建可被破坏的物体
  • Linux下SUID提权学习 - 从原理到使用
  • Redis主从复制搭建一主多从
  • GPT-4o文科成绩超一本线,理科为何表现不佳?
  • Lombok的hashCode方法
  • 关于springboot创建kafkaTopic
  • OOAD的概念
  • Day47
  • 【面试系列】后端开发工程师 高频面试题及详细解答