做网站 用什么语言,青岛开发区 网站建设,网站开发 职位,烟台网站建设的方法有哪些背景
有很多文章都会介绍银行家算法。在百度和CSDN上搜一搜能搜出很多来。很多同学会觉得这个算法很深奥#xff0c;有些文章写的又很复杂#xff0c;其实真的很简单。这里简单记录一下基本原理#xff0c;然后大家再配合其他文章看#xff0c;就能加深理解。
算法原理
…背景
有很多文章都会介绍银行家算法。在百度和CSDN上搜一搜能搜出很多来。很多同学会觉得这个算法很深奥有些文章写的又很复杂其实真的很简单。这里简单记录一下基本原理然后大家再配合其他文章看就能加深理解。
算法原理
银行家算法主要是为了解决死锁问题。CPU有资源相当于银行家有钱很多进程争夺资源相当于很多客户争着贷款。银行家为了能满足所有客户的贷款需求采取的办法是分批次循环放贷。先给需求小的客户放贷等客户用完了收回贷款这样资金就变多了然后再给第二个客户放贷然后再收回贷款再放贷。 为什么放贷要从小需求客户开始因为银行家资源有限上来就给大客户放贷资源可能不够。 先给小客户放贷收回贷款的时候能收回更多资源就更多了。
这样放一批贷款收一批贷款把所有客户过一遍都能满足需求就是符合了安全性要求 这就是银行家算法中最重要的安全性算法。
按照这个顺序有些客户的需求还是无法满足达不到安全性需求系统就需要挂起一部分进程否则就会崩溃。
这个原理其实很好理解上面的比喻可能不够精确但是却是最好的理解途径了。 希望能帮到大家。