龙空技术网

「操作系统」银行家算法中的安全性验证,考研进行时

小萌九尾 195

前言:

当前朋友们对“操作系统银行家算法available怎么求”大约比较注重,兄弟们都需要知道一些“操作系统银行家算法available怎么求”的相关文章。那么小编也在网络上搜集了一些有关“操作系统银行家算法available怎么求””的相关资讯,希望大家能喜欢,咱们快快来了解一下吧!

银行家算法,是操作系统中很重要的一部分内容,它的主要作用是避免死锁的产生,以银行借贷系统的分配策略为基础,判断并保证系统的安全运行

Q:在银行家算法中,若出现下述资源分配情况(5个进程,资源A/B/C共3类),假设系统有A类资源 5个,B类资源7个,C类资源12个,某一时刻有以下分资源分配(5,7,12)

那么available就是减去已经分配的那些所有部分,剩下的就是可获得的

即为1,2,1,可得到available(1,2,2)

Process Max Allocation

A B C A B C

P1 4 1 3 2 1 2

P2 0 6 2 0 2 2

P3 1 2 2 0 0 1

P4 1 0 3 1 0 0

P5 3 5 7 1 2 5

Max[i][j]=Allocation[i][j]+Need[i][j]

银行家算法中涉及到的数据结构有:可利用资源向量Available

最大需求Max,分配Allocation,需求Need

首先,我们要设置两个工作量,Work=Available和Finish

然后进行判断,Finish==False

Need<=work

在这一步,我们要将need的值算出来,显而易见

P1的need是 2 0 1

P2的need是 0 4 0

P3的need是 1 2 1

P4的need是 0 0 3

P5的need是 2 3 2

在第三步,我们就要来计算work=work+allocation,

Finish==True

这里我们要确定一件事,就是need要小于work的,work是available即为(1,2,2)

那么其中小于work的仅有P3的need

(work)result=work+allocation

那么P3写在第一位,得到的work就是1 2 3

之后是P4的need小于work,那么P4写在第二位,得到的work就是2 2 3

再之后就是P1的need小于work,那么P1写在第三位,得到的work就是4 3 5

之后是P5的need小于work,那么P5写在第四位,得到的work就是5 5 10

最后就是P2的need小于work,那么P2写在第五位,得到的work就是5 9 10

很显然,每个的Finish状态都是True

那么系统就是能够安全运行的

标签: #操作系统银行家算法available怎么求