龙空技术网

进程死锁的银行家算法在数据分析中的场景

数字化与智能化 161

前言:

此时朋友们对“银行家死锁检测算法java”都比较关注,朋友们都需要学习一些“银行家死锁检测算法java”的相关内容。那么小编同时在网摘上搜集了一些对于“银行家死锁检测算法java””的相关内容,希望大家能喜欢,你们一起来学习一下吧!

一、案例描述

计算机专业 学过操作系统原理的同学知道,银行家算法被用于解决进程间的死锁问题 。其实银行家算法也广泛的用于数据分析领域,比如金融领域的资金链断裂的预测等场景。你也可以把该算法看作运筹学决策论的思想用于经济管理。对于非计算机专业的人去看操作系统死锁的银行家算法程序,如果您的基础不是很扎实,很容易被算法里面的很多变量及它们之间的关系弄晕,所以在这里通过分析国家计算机软件资格水平考试的例题,将其还原为我们原有的金融类场景,以便于大家理解,这也符合我们使用通俗易懂的场景来理解复杂的原理的一贯做法。

假设某大型连锁 书城有5家子书城,分别是C1、C2、C3、C4、C5,假设该书城经营软件开发类图书、大数据类图书和人工智能类图书。该集团用于进货软件开发类图书的资金F1的可用资金为9千万元;用于进货大数据类图书资金F2的可用资金为8千万元;用于进货人工智能图书类的资金F3的可用资金为5千万元。我们都希望每种进货的资金能够快速回笼,以便用于其它类图书进货。

您把进程的资源理解为资金,这里F1、F2、F3可用资源数分别为9、8、5(千万元);您把子公司C1、C2、C3、C4、C5理解为5个进程。

这些子公司对资金需求的最大量和已经分配的资金数如下图所示:

判断资金按照 下的序列给每个公司分配分配其资金链是否是安全的?

C2 ---> C4 ---> C5 --> C1 ---> C3

二、案例分析

使用每种资金的总额度减去已经分配的求出剩下的资金数:

F1 = 9 – ( 1 + 2 + 2 + 1 + 1 ) = 2

F2 = 8 – ( 2 + 1 + 1 + 2 + 1 ) = 1

F3 = 5 – ( 1 + 1 + 0 + 0 + 3 ) = 0

各个子公司还需要的资金数如下图所示:

下面判断按照 C2 ---> C4 ---> C5 --> C1 ---> C3 资金分配的安排是否安全:

注意:当C2运行完毕后(资金回笼后,只考虑本不考虑利润),将释放资源(资金)

经过上图分析,这个分配序列进行资金分配是安全的。

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。

标签: #银行家死锁检测算法java