银行家算法——软考探究(四)

著名的银行家算法,最早是由Dijkstra提出来的。它是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。

银行家算法最重要的就是判断是可用资源和仍需资源之间的关系,如果可用资源数大于人需资源数,那么我们认为这个进程就是可以执行的,也是安全的,反之,便是不安全的。所以重中之重的是找到各种资源数。

对进程的判断遵循以下步骤:

1.计算系统开始时所有的资源数,即开始的可用资源数;

2.在仍需资源数和可用资源数中作比较,找到符合条件的进程,最后修改进程执行完毕时系统的可用资源数;

3.继续比较剩余进程和可用资源数,找到下边可以执行的进程;

4.依次类推;

下面那一个例子来解释这些晦涩的文字,一定要认真去看哦O(∩_∩)O~

【例】假设系统中有3类互斥资源R1、R2、R3,可用资源分别是9、8、5,。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示,则进程如何执行是安全的。


资源

进程


最大需求量


已分配资源数


R1


R2


R3


R1


R2


R3


P1


6


5


2


1


2


1


P2


2


2


1


2


1


1


P3


8


0


1


2


1


0


P4


1


2


1


1


2


0


P5


3


4


4


1


1


3

这里需要强调的是,无论题目中给出何种条件,我们只要找到以下信息便可从容应对各种变化:



最大需求量


已分配资源数


仍需资源


可用资源



R1


R2


R3


R1


R2


R3


R1


R2


R3


R1


R2


R3


P1


6


5


2


1


2


1


5


3


1


7


7


5



P2


2


2


1


2


1


1


0


1


0


4


2


1



P3


8


0


1


2


1


0


6


-1


1


9


8


5



P4


1


2


1


1


2


0


0


0


1


5


4


1



P5


3


4


4


1


1


3


2


3


1


6


5


4


【注】:

可用资源:表示相应的进程执行完毕(即释放该进程占用的资源)以后可用的资源,满足公式可用资源=可用资源+已分配资源,(因为已分配的资源将会在进程执行完毕以后释放,所以可用资源会不断增多,进程执行完毕便会全部释放)同时它也是下一个进程执行时可用的资源。

**需要说明的是根据进程执行情况的不同,每次填入表格中的可用资源也不会相同(因为每个进程分配的资源是有差异的),那么执行顺序也会有所差异,合理即可。

仍需资源:仍需资源数=最大需求量-已分配资源数,据此公式可以求得R1、R2、R3在不同的进程时仍需的资源数,如上表中所示。

按照之前所讲的步骤,实现如下:

R1已分配的总资源数为1+2+2+1+1=7

R2已分配的总资源数为2+1+1+2+1=7

R3已分配的总资源数为1+1+0+0+3=5

则R1 R2 R3可用资源数分别为9-7=2,

8-7=1,

5-5=0,

1.开始有的资源数R1 R2R3分别为2、1、0,所以从仍需资源中查找(需要说明的是查找的时候以最少资源数作为限定条件能够较快地找出结果),只有P2进程符合条件,此时可用资源变为4、2、1;

2.接下来在在其余的进程中查找符合条件的进程,只能执行P4,此时可用资源变为5、4、1,以此类推,按照以上的步骤即可找到所有进程执行的顺序P2->P4->P5->P1->P3;

以上便是有关银行家算法的计算过程,总体看来,银行家算法更多的是对概念的考察,弄清楚各个条件之间的制约关系便可迎刃而解了,希望能对大家有所帮助!

时间: 2024-08-28 17:22:18

银行家算法——软考探究(四)的相关文章

数据结构——软考探究(一)

继上篇博客之后,对软考涉及的知识有了更深入的研究,本篇博客将会和大家分享对于数据结构的学习.数据结构是软考中比较重要的一块知识,它介绍了计算机中数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构.对于我们对于计算机知识的深入研究有很好的帮助,同时以此为基础也会很好地帮助我们去挖掘计算机的潜能,实现各方面性能的最优化. 对于数据结构的知识,自己总结了以下的框图: 数据结构是计算机中我们时常会涉及到的基础知识,他对于我们来说是非常重要的,诸如线性表.栈.队列.树图以及各种排序算

软件工程——软考探究(三)

软件工程的学习很早就开始了,如今,在软考中又再次相遇,有种"故地重游"的感觉,但"物是昨日物而人非本来人"了,消除了原来的陌生.恐惧,更多的是对这部分知识的更深的理解和体会.之前对于软工这部分脑子里边很凌乱,总是有抽象.晦涩的感觉,此次,自己做了一些总结分享给大家: 当自己这么"故地重游"之后,有了更多的感触,对于文档.图形的重要性有了更深的理解,深深地体会到了文档这些看似乏味的东西在系统开发中的重要作用.之前对写文档.画图产生反感的情绪,却殊不

数据流图的绘制——软考探究(二)

软考中第一道大题就是数据流图的设计,这道题总体来说就是对参考人耐心.细心.信心的一次考验. 概念: 从我个人理解来说,数据流图的绘制就是对一个系统中各个角色(实体)所涉及到的操作(加工)的罗列,其中要记录下操作中使用和产生的文档.资料(文档.资料).下面从数据流图的图标说起,数据流图中的图形有矩形.椭圆形.箭头.缺口的四边形 矩形:代表实体 圆角矩形:代表具体的加工,试题中通过动词的形式体现: 箭头:代表数据流,旁边需要注明数据流的名称: 缺口的四边形:代表系统中需要和生成的资料.文档: 做题要

PV操作——软考探究(五)

之前总结了和资源有关的银行家算法,随着学习的深入,对于资源的理解也有了更深的理解,此篇文章通过解决同步.异步问题的典型机制--PV操作来加深对资源的理解. P操作:申请一个资源.它是执行操作的前提,只有有了资源才可以执行操作.就和现实生活是一样的,只有有了资源才能够进行生产. V操作:释放一个资源.在执行完毕一个操作以后要将占用的资源释放掉,和银行家算法吻合, 同时发出信号. [例]两个相关联的进程A和B,他们共享一个缓冲器.进程A不断地读入数据,并送入缓冲器:进程B不断地从缓冲器中取出数据并加

2017上半年软考 第四章 重要知识点

第四章 讲了项目管理的一般知识,重点是:[项目特点:一次性,临时性,独特性.渐进明细: 信息系统集成项目特点:以满足客户和用户的需求为根本出发点.是选择最适合的用户需求和投资规模的产品.高技术和高技术集成.系统工程.成员年轻流动率高.强调沟通重要性,系统集成项目管理即是一种管理行为又是一种技术行为: 项目的约束性目标=管理性目标: 项目成果性目标=项目目标: 项目smart原则:具体的specific.可测量的measurable.可达到的attainable.相关的relevant.有明确时限

软考(四)

http://blog.csdn.net/lihepeng007/article/details/49716551 [UML]三种事物 四种关系 九种图 标签: uml生命周期 2015-11-08 09:04 732人阅读 评论(19) 收藏 举报  分类: UML统一建模语言(3)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 UML描述模型的内容分为三种,分别是事物.关系和图. 三者关系 事物 1.结构事物 类:类是具有相同属性.相同方法.相同语义和相同关

我的软考之路(四)——数据结构和算法(2)树和二叉树

上鲍恩描述了数据结构的线性结构,我们引入非线性结构本博客-树和二叉树.我想向大家介绍一些基本概念树,树遍历,然后介绍了二叉树的概念和特征.和二叉树遍历.叉树的对照,总结. 树为了描写叙述现实世界的层次结构,树结构中一个数据元素能够有两个或两个以上的直接后继元素. 树的基本概念: 树的概念是学习树的关键所在.掌握了树的基本概念,学会树与二叉树,so easy. 我通过一棵树来了解树的基本概念.例如以下图 1.结点的度 结点的度是子结点的个数.比如:结点1有三个字结点2,3,4,所以结点1的度为3.

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次