版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮海工学院计算算机工程学院院实验报告书课程名: 计计算机操作系系统 题 目: 实验验二 银行家算法法 班 级: 姓 名: 评语:评语:成绩: 指导教师: 批阅时间: 年 月 日 UML理论与实践实验报告 - PAGE 20 -实验二 银行家家算法实验目的和要求求应用银行家算法法验证进程安安全性检查及及分配资源编制模拟银行家家算法的程序序,并以以下下例子验证程程序的正确性性。实验环境1PC微机。2Windoows 操作作系统。3C/C+/VB开发发集成环境。实验学时 2学时时,必做实验验实验内容和步骤骤1)根据算法流流程图编制可可执行程序2)用以下两个个例子验证程程序的正确性性。3)按照上述两两
2、个例子,输输出执行的结结果。算法流程图银行家算法:安全性算法:【例1】某系统统有A、B、CC、D这4类类资源供5个个进程共享,进进程对资源的的需求和分配配情况如下表表所示。现在在系统中A、BB、C、D类类资源分别还还剩1、5、22、0个,请请按银行家算算法回答下列列问题:进程已占资源最大需求数ABCDABCDP100120012P210001750P313542356P406320652P500140656(1) 现在在系统是否处处于安全状态态?(2) 如果现现在进程P22提出需要(0,4,22,0)个资资源的请求,系系统能否满足足它的请求?【例2】用银行行家算法考虑虑下列系统状状态 :进程
3、分配配矩阵 最大需求求矩阵 资资源总数矩阵阵A 33 0 1 1 4 1 11 1 6 3 4 2B 00 1 0 0 0 2 11 2C 11 1 1 0 4 2 11 0D 11 1 0 1 1 1 11 1E 00 0 0 0 2 1 11 0问系统是否安全全?若进程BB请求(0,0,1,00),可否立立即分配?此此后进程E也也请求(0,0,1,00),可否分分配给它?通过运行程序发发现,例1当当中的系统处处于不安全状状态,进程PP2提出的请请求无法实现现;例2当中中的系统处于于安全状态,进进程B提出的的请求能实现现,此后进程程E的请求也也能实现。源代码#includde#definee
4、 N 200#definee M 200using nnamesppace sstd;int f(iint aNM,int bNM,innt m,iint k) intt j; for(j=0;jjbkk-1jj)retturn 00; reeturn 1;int g(iint aNM,int b,iint m,int kk) int j; for(j=0;jjbjj)retturn 00; reeturn 1;int h(iint a,intt n) for(int ii=0;in;i+) iif(!ai)reeturn 0; reeturn 1;int p(iint a,intt bNM,
5、iint m,int kk) int j; for(j=0;jjbbk-1j)rreturnn 0; reeturn 1;int q(iint a,intt b,int mm) int j; for(j=0;jjbjj)retturn 00; reeturn 1;int saffe(intt FiniishN,int WorkM,innt NeeedNM,innt AlllocatiionNM,iint n,int mm) intt i,j,k; intt tN; forr(i=0;in;ii+) tti=11; coutt安全全性检查!enddl; for(i=0;iin;)/ 首先找找到一
6、个满足足条件的进程程 if(Finisshi=0)&g(Neeed,Worrk,m,ii) kk=i; tti=00; ccoutp(k+1):enddl; cooutWorkm:; ffor(j=0;jmm;j+) couutWoorkj ; Worrkj=Workj+Alllocattioniij; Finnishii=1; ccoutendl; cooutNeedm:; for(j=0;jjm;j+) couutNeeedij ; coutendll; couutAAllocaationm:; for(j=0;jjm;j+) couutAlllocattioniij ; couttend
7、dl; ccout(Worrk+Alllocatiion)m:; for(j=0;jjm;j+) couutWoorkj ; couttenddl; cooutFinisshk+1:; couutFiinishi ; coouteendl; breakk; elsee ii+; if(gg(Needd,Workk,m,k)/依次次找到满足条条件的后面几几个进程 ffor(i=0;inn;i+) iif(tii) if(g(Neeed,Worrk,m,ii) couutpp(ii+1):endl; couutWWorkm:; ffor(j=0;jmm;j+) couutWoorkj ; Worr
8、kj=Workj+Alllocattioniij; Finnishii=1; ccoutendl; couttNeeedm:; for(j=0;jjm;j+) couutNeeedij ; ccoutendl; ccoutAlloocatioonm:; for(j=0;jjm;j+) couutAlllocattioniij ; ccoutendl; cout(Woork+Alllocattion)m:; ffor(j=0;jmm;j+) couttWorrkj ; coutendll; ccoutFiniishi+1:; couutFiinishi ; couutenndl; ti=0; e
9、lsee rreturnn 0; if(h(Fiinish,n)reeturn 1;/系系统处于安全全状态 elsee retuurn 0;/系统处处于不安全状状态 void r(int FFinishhN,iint WoorkM,int AvaillableM,innt NeeedNM,innt AlllocatiionNM,iint MaaxNM,innt n,iint m) int RequeestM; charr b; int i,j,kk; couutn要申请资资源,请按y或YY,否则按按n或Nb; if(bb!=y&b!=Y) if(safe(Finissh,Worrk,Neeed
10、,Alllocatiion,n,m) ccout此时刻系系统安全!n; eelse cout此时刻刻系统不安全全!n; elsee couutn请输入申申请资源的进进程编号(11,2,nn):k; whiile(kn) ccout您输入了了错误的进程程号,请核查查后重新输入入:kk; cooutn请输入入进程p(k)申请各各类资源的数数量:endl; for (j=0; jReqquestj; iif(p(RRequesst,Neeed,m,kk) if(q(Reqquest,Availlable,m) forr(j=0;jm;jj+) Avaailabllej=Availlablej-Ree
11、questtj; Alllocatiionk-1j=Alloocatioonk-11j+Requeestj; Neeedk-11j=Needk-1j-Reequesttj; Workj=Avvailabblej; couut试试分配!endll; couut各各种资源可利利用的数量AAvailaablem: enddl; for (j=0; jm; j+) couutAvvailabblej ; coutendll; coutn已已分配资源AAllocaationm: enndl; for (i=0; in; i+) forr (j=00; jmm; j+) coutAlloocatiooni
12、j ; coouteendl; coutn最最大需求矩阵阵Maxnm: endll; for (i=0; in; i+) forr (j=00; jmm; j+) coutMaxij ; coouteendl; ccoutn需求求矩阵Neeednmm: eendl; for (i=0; in; i+) forr (j=00; jmm; j+) coutNeeddijj ; coouteendl; if (ssafe(FFinishh,Workk,Needd,Alloocatioon,n,mm) /判断当当前状态的安安全性 cout系统处处于安全状态态!; cooutn申请资资源成功!eendl
13、; eelse couutn当前状态态不安全!; /恢恢复数据 forr (j=00; jmm; j+) Availlablej=Avvailabblej+Requuestjj; Alloccationnk-1j=AAllocaationk-1j-Reequesttj; Needk-1j=Neeedk-1j+Requuestjj; Workj=Avvailabblej; forr(i=0; in; i+) Finisshi=0; coutn恢恢复数据:enddl;/显显示输入各数数组的值 ccout各种资源源可利用的数数量Avaiilableemm: eendl; for (j=0; jm;
14、j+) couutAvvailabblej ; coutendll; coutn已已分配资源AAllocaationm: enndl; for (i=0; in; i+) forr (j=00; jmm; j+) coutAlloocatioonij ; coouteendl; coutn最最大需求矩阵阵Maxnm: endll; for (i=0; in; i+) forr (j=00; jmm; j+) coutMaxij ; coouteendl; coutn需需求矩阵Neeednm: endl; for (i=0; in; i+) forr (j=00; jmm; j+) coutNe
15、eddijj ; coouteendl; coout系统中尚无无足够的资源源满足进程ppkk的的申请,pk必须须等待!endll; elsee coutt系统统中尚无足够够的资源满足足进程pk的申请请,pk必须等待待!eendl; else coout出错,进程程所需要的资资源数目已超超过它所宣布布的最大值!enndl; void maain() couttenndl; coutt模拟银行行家算法eendl; couttenndl; coutt江之之风海之韵endll; couttQuQQueendl; couttenndl; int AvaillableM; int MaxNNM; int
16、AlloccationnNMM; int NeedNM; intt WorkkM; int FinisshN; int i,j,nn,m; /定义义全局变量 couttn; couutm; coutt输入入各种资源可可利用的数量量Availlablem: enndl; for (j=0; jAAvailaablejj; WWorkjj=Avaailabllej;/初始化化Workj couttnn输入各进程程对各类资源源的最大需求求数Maxnm: enddl; couutn请严格按按照(nm)的距距阵输入:enddl; for (i=0; in; i+) ffor (jj=0; jjMaxxi
17、jj; couttnn请输入各进进程当前已分分配的资源数数量Alloocatioonnmm: eendl; couttnn请严格按照照(nnm)的距距阵输入:enddl; for (i=0; in; i+) FFinishhi=00; ffor (jj=0; jjAlllocatiionij; Neeedij = Maxiij-Alloccationnijj; r(Fiinish,Work,Availlable,Need,Alloccationn,Max,n,m); for(i=0;iin;i+) FFinishhi=00; r(Fiinish,Work,Availlable,Need,Alloccationn,Max,n,m);for(i=00;in;i+) FFi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热处理区温控校验保养计划
- 路面临边防护栏杆搭设拆除规范
- 精雕加工标准作业程序书
- 寄养区域安全规定标准手册
- 临床路径管理提质增效实施方案
- 江西省南昌市2026届高三年级下学期四月检测(二模)政治试题(含答案)
- 窗帘清洗拆装消毒流程手册
- 2026年医院医技科工作总结及计划(2篇)
- 2026院感科室年度工作计划
- 冰冻灾害道路抢修应急预案
- 多器官功能障碍综合征(MODS)
- 《唐诗三百首》导读课(二稿)
- 【5套打包】兰州市小学五年级数学下期中考试单元检测试题(含答案解析)
- 重卡结构解析图
- 安踏集团零售管理培训手册定
- 职场小白快速读懂财务三张报表
- 土地机旋耕旋施工的方案设计
- 《我参与 我奉献》第4课时示范公开课教学PPT课件【道德与法治五年级下册】
- 2021-2022中国滑雪产业白皮书
- GB/T 5974.1-2006钢丝绳用普通套环
- FZ/T 52051-2018低熔点聚酯(LMPET)/聚酯(PET)复合短纤维
评论
0/150
提交评论