银行家算法例题求解过程

编程入门 行业动态 更新时间:2024-10-12 14:17:48

银行家算法<a href=https://www.elefans.com/category/jswz/34/1767926.html style=例题求解过程"/>

银行家算法例题求解过程

 

(1)该状态是否安全?安全给出安全序列,不安全给出理由。

解题方法

首先明白各个变量的含义

Allocation 表示已经分配的资源

Need表示还需要的资源

Available表示可分配的资源

max表示目前总资源 max= Allocation +Available

步骤

1)根据need的大小排序,当某一个可以,其上下都可以时,选择下一个

2)每次将avalible与allocation相加求得max比较它与下一个need的大小,如果大则继续进行,否则,不安全

 

(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?(要说明理由)

当有请求时,首先要做的是

if(request<=need)
{test();
}
else
{throw Exception
}
void test()
{if(requset<=available){//重点avalilable=avaliable-request;allocation+=request;need-=request;}else{throw Exception;}
}

所以先比较request<p2.need

所以available=available-request=0 4 0 0

p2.need=1 1 3 4

p2.allocation =2 5 7 6

试分配如表

 

无法找到安全序列,故不能分配。

更多推荐

银行家算法例题求解过程

本文发布于:2024-03-05 23:52:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713791.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:例题   银行家   算法   过程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!