()系统执行安全性检查如安全则分配成立;否则试探险性分配作废系统恢复原状进程等待
安全性检查
()设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE
()从进程集合中找到一个满足下述条件的进程
FINISH[i]=FALSE
NEED<=WORK
如找到执行();否则执行()
()设进程获得资源可顺利执行直至完成从而释放资源
WORK=WORK+ALLOCATION
FINISH=TRUE
GO TO
()如所有的进程Finish[M]=true则表示安全;否则系统不安全
四程序流程图
银行家算法流程图
五实验总结与体会
操作系统是计算机系统中必不可少的系统软件它是计算机系统中各种资源的管理者和各种活动的组织者指挥者银行家算法是为了使系统保持安全状态我们可以把操作系统看作是银行家操作系统管理的资源相当于银行家管理的资金进程向操作系统请求分配资源相当于用户向银行家贷款操作系统按照银行家制定的规则为进程分配资源当进程首次申请资源时要测试该进程对资源的最大需求量如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源否则就推迟分配当进程在执行中继续申请资源时先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量若超过则拒绝分配资源若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量若能满足则按当前的申请量分配资源否则也要推迟分配
通过上面这个例子我们看到银行家算法确实能保证系统时时刻刻都处于安全状态但它要不断检测每个进程对各类资源的占用和申请情况需花费较多的时间
本次实验为时两天多总体上来说实验是比较成功的由于时间仓促做的不是很完美敬请谅解
附件
操作说明根据提示输入本次申请资源的进程号和申请资源数如图
如资源申请成功显示本次的申请后的一个进程安全执行序列如图
如资源申请不成功则恢复申请前的资源状况如图
如对I类申请数大于进程还需要I类资源的资源量或大于系统可用I类资源数如图
源程序清单
[] [] [] [] [] []