



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验2银行家算法(2学时)一、实验目的理解银行家算法,掌握进程平安性检查的方法及资源分配的方 法。二、实验内容编写程序实现银行家算法,并验证程序的正确性。三、实验要求编制模拟银行家算法的程序,并以下面给出的例子验证所编写的 程序的正确性。例子:某系统有A、B、C、D4类资源共5个进程(PO、Pl、P2、(1)现在系统是否处于平安状态?(2)如果现在进程P1提出需求(0、4、2、0)个资源的请求,系统能否满足它的请求?#include string.h#include iostream using namespace std;#define FALSE 0 #define TRUE 1#defi
2、ne W10#define R 20intM; 总进程数intN; 资源种类int ALL_RESOURCEW各种资源的数目总和int MAXWR;/7M个进程对N类资源最大资源需求int AVAILABLER;系统可用资源数intALLOCATIONWR;M个进程已经得SUN类资源的资源量int NEEDWR;/M个进程还需要N类资源的资源int RequestR;请求资源个数void shovvdata()函数showdata,输出资源分配情况ALL:endl;资源AVALIABLE:endi;资源vvjvv”: AVAILABLEj;NEED:Hendl;资源资源r- 资源int i,j
3、; coutH coutM n;for (j=0;jN;j+)coutH nALL_RESOURCEj;coutendlendl;cout coutn n;for (j=0;jN;j+)cout coutendlendl;coutn coutn 2Hendl;for (i=0;iM;i+)for (i=0;iM;i+)进程 p,iM:1;/Icoutnfor(j=0;jN;j+)coutNEEDijn coutendl;ALLOCATION: endl;资源0”vv”资源l“vv”资源I coutendl; coutM cout2Hendl;for (i=0;iM;i+)coutH进程 p”v
4、vivv”: n;for(j=0;jN;j+)coutALLOCATIONijH M; coutendl;coutendl;Ivoid changdata(int k) 函数changdata,改变可用资源和已经拿到资源和还需要 的资源的值int j;for (j=O;jN;j+)AVAILABLEj=AVAILABLEj-Requestj;ALLOCATIONkj=ALLOCATIONkj+Requestj;NEEDkj=NEEDkj-Requestj;)void rstordata(int k) 函数rstordata,恢复可用资源和已经拿到资源和还需要的 资源的值int j;for (j
5、=O;jN;j+) AVAILABLEj=AVAILABLEj+Requestj; ALLOCATIONkj=ALLOCATIONkj-Requestj;NEEDkj=NEEDkj+Requestj;|int chkerr(int s) 函数chkerr,检查是否由荃 int izjzk,l;int WORKWZFINISHW;for(k=0;kM;k+)FINISHk=false;|/7重置 FINISHfor(k=0;kN;k+)WORKk=AVAILABLEk;|for(i=0;i= NEEDij)1+;Iif(l=N&FINISHi=false)for(j=0;jN;j+)WORKj+
6、=ALLOCATIONij;IFINISHi=true;coutH ,pniMi=-l;else(for(i=0;iM;i+) if(FINISHi=FALSE)(coutendl;coutn系统进入不平安状 态,申请失败!*endl; system(pause);coutendl;return 1;|coutendl;cout分配成功vendl;system(npauseH);coutendl;return 0;void bank() 银行家算法int i=0zj=0;char flag=Y;while(flag=,Y, | |flag=y)i=-l;while(i=M)(cout-申请资源
7、的进程号:“;coutHpn;cini;if(i=M)coutn输入的进程号不存在,重新输A!,endl;coutn请输入进程Pvvivv”申请的资源数:endl;for (j=O;jNEEDiR) 假设请求的资源数大于进程还需要i类资源的资 源*jcout请求资源大于进程所需资源!”vAVAILABLEj) 假设请求的资源数大于可用资源数IcoutH申请资源大于可用资源!” vvendl;cout申请不合理,出错!请重新选择!Vendl;system(npausen);flag=N;break;if(flag=,Y, | | flag=,y)changdata(i);调用changdata函
8、数,改变资源数if(chkerr)假设系统平安rstordata(i);调用rstordata函数,恢复资源数showdata(); /出资源分配情况Ielse假设系统不平安showdata();帏出资源分配情况else 假设 flag=N | | flag=nshowdata();coutendl;coutn继续输入Y,退出输入任意键:*;cinflag;void main。主函数int i=Ozj=Ozp;COUtVV”输入总进程数:;cinM;COUtVV”输入总资源种类严;cinN;COUtVV请输入总资源数:“;for(i=0;iN;i+)cinALL_RESOURCEi;coutv
9、v”依次输入各进程所需要的最大资源数:l:(max):”vvendl;for (i=0;iM;i+)for (j=O;jALL_RESOURCEj)COUtVV”占有资源超过了声明的该资源总数,请重新输入”;)while (MAXijALL_RESOURCEj);cout依次输入 allocation:endl;for (i=0;iM;i+)Ifor (j=O;jMAXij)coutvv”占有资源超过了声明的最大资源,请重新输入”;Jwhile (ALLOCATIONijMAXij);初始化资源数for (j=O;jN;j+)| p=ALL_RESOURCEj;for (i=0;iM;i+)(p=pALLOCATI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年钦州运输从业资格证考试试题库
- 辽宁省辽阳县2025年初三下学期第一次考试语文试题含解析
- 邢台医学高等专科学校《遥感科学与技术专业外语》2023-2024学年第二学期期末试卷
- 辽宁对外经贸学院《幼儿行为观察与指导》2023-2024学年第二学期期末试卷
- 威海职业学院《环境和生物地球化学》2023-2024学年第二学期期末试卷
- 江苏省连云港市赣榆县重点中学2024-2025学年初三下学期第三次统练数学试题含解析
- 宿迁职业技术学院《翻译简史》2023-2024学年第一学期期末试卷
- 平顶山学院《地铁与隧道工程》2023-2024学年第二学期期末试卷
- 柳州铁道职业技术学院《园林与景观设计》2023-2024学年第二学期期末试卷
- 江苏省南京市江宁区2024-2025学年高三第一次十校联考生物试题含解析
- 网络设备安全配置表
- GB/T 700-2006碳素结构钢
- GB/T 28732-2012固体生物质燃料全硫测定方法
- GB/T 17214.1-1998工业过程测量和控制装置工作条件第1部分:气候条件
- 猪生殖器官(课堂PPT)
- 2023年广东学位英语试题学位英语考试真题(含答案)
- 《旅行社经营管理》考试复习题库及答案
- 粤教版五年级下册科学知识点
- 危大工程巡视检查记录表(深基坑)
- 《最好的未来》合唱曲谱
- GB∕T 36765-2018 汽车空调用1,1,1,2-四氟乙烷(气雾罐型)
评论
0/150
提交评论