关于银行家算法安全分配序列问题

假设有如下资源分配状态如下:进程名AllocationNeedAvailableABCDABCDABCDP0201121001020P121001112P21110310... 假设有如下资源分配状态如下:
进程名 Allocation Need Available
ABCD ABCD ABCD
P0 2 0 1 1 2 1 0 0 1 0 2 0
P1 2 1 0 0 1 1 1 2
P2 1 1 1 0 3 1 0 0
P3 1 1 0 1 0 0 2 0
P4 1 0 0 0 2 1 1 0
问:(1)请检测此时系统是否安全?写出检测过程。

不要只是一个答案,最好把怎么求的写出来,写下解题过程和思路,谢谢
展开
 我来答
搁浅的珊瑚海
推荐于2017-09-13 · TA获得超过1681个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:0
展开全部
1. 安全状态: 在某时刻系统中所有进程可以排列一个安全序列:{P1,P2,`````Pn},刚称此时,系统是安全的.
所谓安全序列{P1,P2,`````Pn}是指对于P2,都有它所需要剩余资源数量不大于系统掌握的剩余的空间资源与所有Pi(j<i)所占的资源之和.
2.不安全状态可能产生死锁.
目前状态 最大需求 尚需
P1 3 9 6
P2 5 10 5
P3 2 4 2

在每一次进程中申请的资源,判定一下,若实际分配的话,之后系统是否安全.
3.银行家算法的思路:
1),进程一开始向系统提出最大需求量.
2),进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量.
3),若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的
剩余资源量,若不超出,则分配,否则等待.
4.银行家算法的数据结构.
1),系统剩余资源量A[n],其中A[n]表示第I类资源剩余量.
2),各进程最大需求量,B[m][n],其中B[j][i]表示进程j对i
类资源最大需求.
3),已分配资源量C[m][n],其中C[j][i]表示系统j程已得到的第i资源的数量.
4),剩余需求量.D[m][n],其中D[j][i]对第i资源尚需的数目.
5.银行家算法流程:当某时刻,某进程时,提出新的资源申请,系统作以下操作:
1),判定E[n]是否大于D[j][n],若大于,表示出错.
2),判定E[n]是否大于系统剩余量A[n],若大于,则该进程等待.
3),若以上两步没有问题,尝试分配,即各变量作调整.
4),按照安全性推测算法,判断,分配过后,系统是否安全,若安全,则实际分配,否则,撤消分配,让进程等待.
6."安全性检测"算法
1),先定义两个变量,用来表示推算过程的数据.
F[n]=A[n],表示推算过程中,系统中剩余资源量的变化.
J[n]=False表示推算过程中各进程是否假设"已完成"
2),流程:
在"剩余"的进程中(在推算)过程中,一些进程假设已完成,查找D[j][n]<=F[n]的进程,找到后令J[j]=True
(假设该进程完成),F[n]+D[j][n](该进程所占资源释放),如此循环执行.
若最后,所有的F[n]=True(在推算过程中,所有进程均可以完成),则表示(分配过后)系统是安全的,否则系统是不安全的.

拿此题来说,可用资源为1020 要先从这些个进程里面看 谁的need 小于等于它,这里只能选择p3(0020),p3完成后释放他的allocation(1101),此时 可用资源变成2121,然后再从其余的里面找need小于等于2121的,这里我选的是p0,同样的p0执行完以后,释放出他的已有资源后,可用资源变成4132,同理依次可选择p4 p2 p1。由此可知 此时系统是安全的,因为可以找到一个安全序列 p3,p0,p4 p2 p1(注意 安全序列不是唯一的)
轻候琳溪07L
2012-04-21
知道答主
回答量:7
采纳率:0%
帮助的人:3.5万
展开全部
精彩回答的解释过程正确吗?!跟操作系统教程里的写的不同。。。。~~T^T~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式