基本流程图
2016-10-23 15:46:29 0 举报
银行家算法
作者其他创作
大纲/内容
True
Request[i]Need[i]
changed?
i进程提出请求Request[i]
初始化函数Init( )
Available -= Request[i]#减少可分配Allocation[i] += Request[i]#分配资源Need[i] -= Request[i]#满足需求
超出需要Need
不能通过安全性检查#还原Available += Request[i]Allocation[i] -= Request[i]Need[i] += Request[i]
不安全
输入每种资源的现有可分配数量Available
输入资源种类数M
初始化结束
所有的Finished是否为True
安全性检查Safety()
修改标志changed=False,设置迭代下标i=0
执行安全性检查Safety()
输入每个进程最多所需要的各种资源到Need
False
Finished[i]==False
Need[i]=Available?
#回收Available += AllocationAllocation = 0Need = 0changed = True
True(未完成)
执行初始化函数Init()
输出安全
False(无法满足需求)
银行家算法开始Bank()
拒绝请求
i++
changed = False
输入每个进程已经分配的各种资源(默认全为0)到Allocation
Request[i]Available
对于某对nm,Allocation[n][m]Need[n][m]重新输入
输入进程数N
设置标志数组Finished=False
in?
输出不安全
超出可分配的最大限度
分配成功
0 条评论
下一页