zoukankan      html  css  js  c++  java
  • 11.大话避免死锁之银行家算法

       银行家算法,顾名思义,是仿照银行发放贷款采取的控制方式而设计的一种死锁避免算法.

    该算法的策略是实现动态避免死锁.要明白此算法,就要明白银行的贷款策略.

      银行的目的是让利润最大化,风险最低,为了控制风险,在放贷之前,要先审核客户的信用额度.客户对资金的使用是按阶段的,并不是一定第一次就得到全部贷款,以后随着需要再次申请.为了简单起见:只要客户的信用额度不超过银行的全部流动财产,即予以批准.

      在客户均守信的情况下,银行唯一的风险就是无法满足所有客户的信用额度,从而无法收回贷款,这里无法收回贷款是因为客户资金不够,无法完成任务并返还贷款造成的.

      总结来说,银行家算法是一个动态避免死锁算法,通过对资源的仔细分配以避免死锁.其特点是可以超额批准客户的信用额度,即所有客户的信用额度之和可以超过银行的全部资本,这就是杠杆.

      动态避免的缺陷就是需要知道你将来需要什么,而由于我们没有什么有效的办法计算出一个线程所需要的资源额度,因此在实际的操作中没有采用这种动态避免方法.但是银行家却有这种能力解决这个问题.他们通过一种复杂的公式计算出你的信用额度.大部分时候这种计算比较保守,可以避免进入死锁状态.当然,他们也有算错的时候,比如美国2007-2008美国的次贷危机就是这种错误计算的一个实例.因为他们错算了客户的信用额度,使得很多人还不起款,从而导致美国的金融危机

  • 相关阅读:
    索引唯一性扫描(INDEX UNIQUE SCAN)
    索引范围扫描(INDEX RANGE SCAN)
    算法设计与分析——回溯法算法模板
    操作系统考试复习大纲
    windows cmd 生成文件目录树
    Java 匿名类和lambda表达式
    下载Abook 高等教育出版社网站资料
    操作系统——银行家算法(Banker's Algorithm)
    算法设计与分析——最大团问题(回溯法)
    JVM内存区域
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8034750.html
Copyright © 2011-2022 走看看