C语言实现银行家算法程序设计实验报告
实验报告
题目名称
C语言实现银行家算法
院系信息科学与工程班级学院
完成时间
指导老师
组长
联系电话组员(姓名,
学号)组员(姓名,
学号)组员(姓名,
学号)组员(姓名,
本次实验成绩
邮件地址qqcom
主要任务程序算法的编写、实现、运行调试
主要任务实验报告的完成
主要任务实验报告的完成
学号)
银行家算法原理:
主
我们可以把操作系统看作是银行家,操作系统管理的资源
要
相当于银行家管理的资金,进程向操作系统请求分配资源相当
原
于用户向银行家贷款。
理
及
为保证资金的安全银行家规定
所
1当一个顾客对资金的最大需求量不超过银行家现有
参
的资金时就可接纳该顾客
考
2顾客可以分期贷款但贷款的总数不能超过最大需求
的
量
资
3当银行家现有的资金不能满足顾客尚需的贷款数额
料
(
时对顾客的贷款可推迟支付但总能使顾客在有限的时间里
包
得到贷款
fC语言实现银行家算法程序设计实验报告
括
4当顾客得到所需的全部资金后一定能在有限的时间
实
里归还所有的资金
验
操作系统按照银行家制定的规则为进程分配资源,当进程
内
首次申请资源时,要测试该进程对资源的最大需求量,如果系
容
统现存的资源可以满足它的最大需求量则按当前的申请量分
及
配资源,否则就推迟分配。当进程在执行中继续申请资源时,
条
先测试该进程本次申请的资源数是否超过了该资源所剩余的
件
总量。若超过则拒绝分配资源,若能满足则按当前的申请量分
)
配资源,否则也要推迟分配。
主要参考书:
计算机操作系统第三版
算法流程图:
西安电子科技大学出版社
汤子瀛主编
附录1银行家算法流程图
附录2安全性算法流程图
主
要算
实验步骤:
法
流程
一.银行家算法
图
进程i发出请求资源申请,
和
具
1如果Requestj
eedij转向步骤2否则认为出错,
体
因为他所需要的资源数已经超过它所宣布的最大值。
实
验
2如果:Requestijavailableij,转向步骤3,否则
步
表示尚无足够资源,进程i需等待。
骤
3若以上两个条件都满足,则系统试探着将资源分配给申请的进
程,并修改下面数据结构中的数值:
AvailableijAvailableijRequestj;
Allocatio
ijAllocatio
ijRequestj;
eedij
eedijRequestj;
4试分配后,执行安全性检查,调用check函数检查此次资源
分配后系统是否处于安全状态。若安全,才正式将资源分配给进
fC语言实现银行r