操作系统实验报告范文C语言实现银行家算法
为保证资金的安全,银行家规定:(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量;(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配。
主要参考书: 计算机操作系统第三版西安电子科技大学出版社汤子瀛主编主要算法流程图和具体实验步骤主要算法流程图和具体实验步骤算法流程图: 附录1--银行家算法流程图附录2--安全性算法流程图实验步骤: 一.银行家算法进程i发出请求资源申请,(1)如果Requet[j]<=need[i,j],转向步骤(2),否则认为出错,因为他所需要的资源数已经超过它所宣布的最大值。
c语言while语句流程图
(2)如果:Requeti[j]<=available[i,j],转向步骤(3),否则表示尚无足够资源,进程i需等待。
(3)若以上两个条件都满足,则系统试探着将资源分配给申请的进程,并修改下面数据结构中的数值: Available[i,j]=Available[i,j]-Requet[j];  Allocation[i][j]=Allocation[i][j]+Requet[j];  need[i][j]=need[i][j]-Requet[j];  (4)试分配后,执行安全性检查,调用check()函数检查此次资源分配后系统是否处于安全状态。若安全,才正式将资源分配给进程; 否则本次试探分配作废,恢复原来的资源分配状态,让该进程等待。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。