例题求解过程"/>
银行家算法例题求解过程
(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
试分配如表
无法找到安全序列,故不能分配。
更多推荐
银行家算法例题求解过程
发布评论