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

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

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

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

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

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

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

  • 相关阅读:
    抽象工厂模式(Abstract Factory)
    工厂模式(Factory Method Pattern)
    简单工厂模式(Simple Factory Pattern)
    UML类图
    .Net之美读书笔记10(网络编程一)
    .Net之美读书笔记16
    tensorflow:验证码的识别(下)
    OpenCV-Python入门教程6-Otsu阈值法
    OpenCV-Python入门教程5-阈值分割
    OpenCV-Python入门教程4-颜色空间转换
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8034750.html
Copyright © 2011-2022 走看看