- 52
- 0
- 约1.86千字
- 约 5页
- 2021-01-23 发布于湖南
- 举报
计算机操作系统实验报告
何美西 109253030212
一、 实验名称: 银行家算法
二、 实验目的: 银行家算法是避免死锁的一种重要方法,通过编写
一个简单的银行家算法程序,加深了解有关资源申请、避免死
锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
三、 问题分析与设计:
1、算法思路 :先对用户提出的请求进行合法性检查,即检查
请求是否大于需要的,是否大于可利用的。若请求合法,则进
行预分配,对分配后的状态调用安全性算法进行检查。若安
全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒
绝申请。
2 、银行家算法步骤: (1)如果 Requesti<or =Need,则转向步
骤 (2);否则,认为出错,因为它所需要的资源数已超过它所
宣布的最大值。
(2)如果 Request<or=Available, 则转向步骤( 3);否则,表
示系统中尚无足够的资源,进程必须等待。
(3)系统试探把要求的资源分配给进程 Pi,并修改下面数据结
构中的数值:
Available=Available-Request[i];
可编辑 word, 供参考版!
Allocation=Allocation+Request;
Need=Need-Request;
(4)系统执行安全性算法,检查此次资源分配后,系统是否处于
安全状态。
3、安全性算法步骤:
(1)设置两个向量
①工作向量 Work 。它表示系统可提供进程继续运行所需要的各类资
源数目,执行安全算法开始时, Work=Allocation;
②布尔向量 Finish。它表示系统是否有足够的资源分配给进程,使
之运行完成,开始时先做 Finish[i]=false ,当有足够资源分配给进程
时,令 Finish[i]=true 。
(2)从进程集合中找到一个能满足下述条件的进程:
① Finish[i]=false
② Needor=Work
如找到,执行步骤( 3);否则,执行步骤( 4 )。
(3)当进程 P 获得资源后,可顺利执行,直至完成,并释放出分配
给它的资源,故应执行:
Work=Work+Allocation;
Finish[i]=true;
可编辑 word, 供参考版!
转向步骤( 2)。
(4 )如果所有进程的 Finish[i]=true, 则表示系统处于安全状态;否
则,系统处于不安全状态。
4、流程图:
系统主要过程流程图
可编辑 word, 供参考版!
银行家算法流程图
可编辑 word, 供参考版!
安全性算法流程图
四、 实验代码:
#includeiostream.h
#includestring.h
#includestdio.h
#define False 0
可编辑 word, 供参考版!
您可能关注的文档
- 雾化吸入法培训课件.pdf
- 详解pdca循环步骤.pdf
- 详细设计-酒店客房管理系统——客户信息管理模块的设计与实现.pdf
- 项目6SQLServer2000安全性管理.pdf
- 项目8单片机与PC机通信系统的设计.pdf
- 项目部党建工作总结.pdf
- 项目负责人授权委托书最新版.pdf
- 项目介绍融资.pdf
- 项目经理竞聘汇报课件.pdf
- 项目融资担保.pdf
- 《GB/T 34880.1-2025五轴联动加工中心检验条件 第1部分:卧式机床精度检验》.pdf
- GB/T 34880.1-2025五轴联动加工中心检验条件 第1部分:卧式机床精度检验.pdf
- 中国国家标准 GB/T 34880.1-2025五轴联动加工中心检验条件 第1部分:卧式机床精度检验.pdf
- 中国国家标准 GB 46036-2025安全防范 透明防护材料.pdf
- 《GB 46036-2025安全防范 透明防护材料》.pdf
- GB 46036-2025安全防范 透明防护材料.pdf
- 《GB/T 45906.5-2025变电站二次系统 第5部分:保护控制及相关设备》.pdf
- GB/T 45906.5-2025变电站二次系统 第5部分:保护控制及相关设备.pdf
- 中国国家标准 GB/T 45906.5-2025变电站二次系统 第5部分:保护控制及相关设备.pdf
- 《GB/T 38278.3-2025全息防伪产品技术条件 第3部分:防伪全息烫印箔》.pdf
原创力文档

文档评论(0)