首页 > 编程语言 > 详细

第77课 银行家算法的分析与实现

时间:2017-01-19 21:37:18      阅读:377      评论:0      收藏:0      [点我收藏+]

1. 银行家算法

(1)问题描述

  研究一个银行家如何将总数一定的资金,安全地借给若干个顾客,使顾客既能满足对资金的需求,也使银行家可以收回自己的全部资金,而不至于破产

(2)一些限制条件

  ①每个顾客在借款前必须提前说明所需资金总额

  ②每次借钱都是以一个单位进行(如:一个单位为1万人民币)

  ③顾客在拿到一个单位的借款前可能需要等待(因为算法实现上会先将钱借给资金需求最少的客户,所以其他客户需等待银行资金足够时才能借到)

  ④银行保证顾客在等待时间是有限的(借或不借)。

2. 算法示例

技术分享 

3. 算法策略及应用场景

(1)算法策略:将资金优先借给资金需求较少的客户

(2)应用场景:

  ①操作系统内核中的进程管理;

  ②数据库内核中的频繁事务管理

4. 算法实现方案

(1)使用多线程机制模拟客户和银行

(2)银行优先分配资源给最小需求的客户

(3)当客户的资源需求无法满足的时候

  ①收回己分配的资源;

  ②强制结束线程。

【编程实验】银行家算法的实现

 

5. 小结

(1)银行家算法常用于资源分配的场合

(2)可以保证资源分配的安全性

(3)采用优先满足需求量较少的客户进行资源分配的算法策略。

第77课 银行家算法的分析与实现

原文:http://www.cnblogs.com/5iedu/p/6308644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!