操作系统银行家算法

如果进程P1发出request1(1,2,2,2),而request1(1,2,2,2)>Need(1,7,5,0)的话,系统会分配资源给P1吗?... 如果进程P1发出request1(1,2,2,2),而request1(1,2,2,2)>Need(1,7,5,0)的话,系统会分配资源给P1吗? 展开
 我来答
百度网友d24e0a1
2010-04-25 · TA获得超过670个赞
知道答主
回答量:31
采纳率:100%
帮助的人:35.9万
展开全部
不会分配,看一下银行家算法的流程。
可以看到 在step(1)若Request<=Need, goto step(2);否则错误返回.
原因如下,每个进程开始之前,都必须声明自己需要的各类资源的最大值Max。
Need 需求资源 = Max 最大需求 - Allocation 已分配资源
进程运行过程中,不能再要比Need还多的资源。

参考书 操作系统概念(OS concepts Six Edition)

算法:
n:系统中进程的总数
m:资源类总数

符号说明:
Available 可用剩余资源
Max 最大需求
Allocation 已分配资源
Need 需求资源
Request 请求资源

当进程pi提出资源申请时, 系统执行下列
步骤:("="为赋值符号, "=="为等号)
step(1)若Request<=Need, goto step(2);否则错误返回
step(2)若Request<=Available, goto step(3);否则进程等待
step(3)假设系统分配了资源, 则有:
Available=Available-Request;
Allocation=Allocation+Request;
Need=Need-Request
若系统新状态是安全的, 则分配完成
若系统新状态是不安全的, 则恢复原状态, 进程等待
为进行安全性检查, 定义数据结构:
Work:ARRAY[1...m] of integer;
Finish:ARRAY[1...n] of Boolean;
安全性检查的步骤:
step (1):
Work=Available;
Finish=false;
step (2) 寻找满足条件的i:
a. Finish==false;
b. Need<=Work;
如果不存在, goto step(4)
step(3)
Work=Work+Allocation;
Finish=true;
goto step(2)
step (4) 若对所有i, Finish=true, 则系统处于安全状态, 否则处于不安全状态
务骞曲素怀
2013-08-18 · TA获得超过3867个赞
知道大有可为答主
回答量:3216
采纳率:28%
帮助的人:437万
展开全部
这个
你要明确两个概念
Need
需求资源
Request
请求资源
需求是指最大要多少资源
请求是一次需要多少资源
我举个例子
某程序最大需要3个寄存器
做加法运算
开始只要两个
存加数a和被加数b
而且a和b不能被改变
但是这个计算
无比复杂
需要一个小时
计算完了
才需要第三个存结果c
那么他的need是3
第一次request是2
第二次request是1
为什么第一次request不直接是3呢
他要第三个寄存器
一个小时不用浪费啊
留给别人用啊
希望你懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-04-25
展开全部
request必须小于need才能分配资源!故上述不能分配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-04-17 · TA获得超过162个赞
知道答主
回答量:137
采纳率:0%
帮助的人:58.9万
展开全部
不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式