一、案例描述
计算机专业 学过操作系统原理的同学知道,银行家算法被用于解决进程间的死锁问题 。其实银行家算法也广泛的用于数据分析领域,比如金融领域的资金链断裂的预测等场景。你也可以把该算法看作运筹学决策论的思想用于经济管理。对于非计算机专业的人去看操作系统死锁的银行家算法程序,如果您的基础不是很扎实,很容易被算法里面的很多变量及它们之间的关系弄晕,所以在这里通过分析国家计算机软件资格水平考试的例题,将其还原为我们原有的金融类场景,以便于大家理解,这也符合我们使用通俗易懂的场景来理解复杂的原理的一贯做法。
假设某大型连锁 书城有5家子书城,分别是C1、C2、C3、C4、C5,假设该书城经营软件开发类图书、大数据类图书和人工智能类图书。该集团用于进货软件开发类图书的资金F1的可用资金为9千万元;用于进货大数据类图书资金F2的可用资金为8千万元;用于进货人工智能图书类的资金F3的可用资金为5千万元。我们都希望每种进货的资金能够快速回笼,以便用于其它类图书进货。
您把进程的资源理解为资金,这里F1、F2、F3可用资源数分别为9、8、5(千万元);您把子公司C1、C2、C3、C4、C5理解为5个进程。
这些子公司对资金需求的最大量和已经分配的资金数如下图所示:
![d3abac005dbd28778395295d403d8b17.png](https://i-blog.csdnimg.cn/blog_migrate/bfc8ad9ec2fa932b644f6891e3c240ef.jpeg)
判断资金按照 下的序列给每个公司分配分配其资金链是否是安全的?
C2 ---> C4 ---> C5 --> C1 ---> C3