计算机操作系统实验二银行家算法实验报告材料书.docx

上传人:太** 文档编号:97974210 上传时间:2024-07-08 格式:DOCX 页数:10 大小:22.77KB
返回 下载 相关 举报
计算机操作系统实验二银行家算法实验报告材料书.docx_第1页
第1页 / 共10页
计算机操作系统实验二银行家算法实验报告材料书.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《计算机操作系统实验二银行家算法实验报告材料书.docx》由会员分享,可在线阅读,更多相关《计算机操作系统实验二银行家算法实验报告材料书.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、淮海工学院计算机学院实验报告书课程名:操作系统原理A题目:银行家算法班级:Z计121学号:2014140093姓名:薛慧君评语:成绩: 指导教师:批阅时间: 年 月操作系统原理实验银行家算法实验报告1目的与要求:1)本实验目的是通过使用银行家算法实现系统资源的分配和安全性检查模拟,提高学生对 操作系统资源分配功能的深刻理解,并培养学生对操作系统开发的兴趣与应用能力;2)实验前必须认真阅读和理解银行家算法的基本原理和实现方法;3 )独立使用C或VC+编程语言编写银行家算法模拟程序;4 )按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及 相关实验数据与运行结果)5 )于

2、2015年5月10日以前提交本次实验报告(含电子和纸质报告,由学习委员以班为 单位统一打包提交X6 实验内容或题目1)设计五个进程P0 , Pl , P2 , P3 , P4洪享三类资源A , B , C的系统,A , B , C的资源总数量分别为10 , 5,70 (参考书上用例)2)并行进程可动态地申请资源和释放资源(程序交互输入申请或释放资源数量),系统按各进 程的申请动态地分配资源。3)每当进程动态申请资源或释放资源时,模拟程序应能及时显示或打印各个进程在此时刻的 资源分配表、系统可用资源量和安全序列等资源分配信息和安全检查信息。4)本次实验内容(项目)的详细说明以及要求请参见实验指导

3、书。3实验步骤与源程序实用标准文档 #include ttinclude define M 5定义进程数|ttdeFine N 3定义资源数ttdeFine False Q ttdeFine True 1int Max3=,3,2,2,9,0,2,4,3,3; int Aualiable=;还需要资源int Request3;void showdata()显示资源矩阵 int i,j;printFL系统可用的资源:n”); printf(resouce:); For (j=0;jN;j+) printf(,*d J,Aualiablej);输出分配资源 printFCXn);printF各进程

4、的资源需求:n“);For (i=0;iM;i+) printF(prd: ,i); For (j=0;j printF各进程得到资源:n); For (i=0;iM;i+) printf(pr%d: g,i); For (j=0;j printer各进程还需求资源:海); For (i=0;iM;i+) printF(pr%d: ,i); For(j=0;jN;j+) printF-d输出还需要资源数printF(n); int changdata(int i)进行资源分配 int j; For (j=0;jM;j+) int chkerr()安全性算法int Work3,FinishM=8

5、,tempM;int i,kuGngapply;int j;WorkO=Aualiable0;Work1=fiualiable1;Work2=fiualiable2;For(i=0;iM;i*+) apply=0;For(j=8;j3;j+) if (Finishi=False&Needij=Workj)apply;if(apply=3) For(m=0;m elseif(Finishi=False)prints”养统瓷遮分配成功厂);如果安全,输出成功 prints”分配的序列二n“ _输出运行进程数组printf (pr%d Bi,tempi);) return 0;uoid Share(

6、)利用银行家算法对申请资源对进行判定 char ch;int i=0,i=0;int i=0,j=8;ch=iy;printsn请输入要求分配的浪源进程号从(G to 4):-);scanf (T,&i); 输入须申请的资源号printer请输入进程常。申请的资源For(j=0;j3;j*)printf,第 %d 个资源:jT);sea肝(%(T,&Reque5tj);输入需要申请的资源For (j=0;jN;j+)Aualiablej)判断申请是否大于当前资源,/出错printer进程申请的资源大于auailablei);printf (B, error?n);ch=in;break;iF(

7、ch=Bye)uoid Reuision()print,请选择:1:修改进程还需要的资源2:修改进程可用资源“);int choicel;scanFCd* ,&choice1);if(choice1=1)printf,输入要修改的资源号(旷4)”);int p;scanFCW.&p);prints输入修改后进程还需要的资源scanF(id,d,dii,&Needp0 ,&Needp1 ,&Needp2);口行讦经修改后各进程还需求资源:);For (int a=8;aM;a+)printf (pr%d:B,a);For(int b=0;bN;b+)printHR% Needab);输出还需要资

8、源数printFCXn);iF(choice1=2) printf输入系统可用资源EX(1,1,1)n);scanF(la%d 9%daa9&Aualiable 0 ,&Aualiable1 9&Aualiable2);printf,经修改后的系统可用资源为n);For (int k=O;kint main()主函数int choice;showdata() /显示各种资源chkerr();用银行彖算叁判定系统是否安全 doprints(“n输入要进行的操作1:分配资源2:修改资源3,离开“);scanf (%d,B,&choice);iF(choice=1)iF(choice=2)iF(ch

9、oice=3)iF(choice=4) break;while(choice=1)|(choice=2)|(choice=3);return 1;4测试数据与实验结果(可以抓图粘贴)(1)程序运行时选择1,输入进程prl的请求向量(1,0,2 )经过程序计算,资源分配成功。资源具体分配过程如下图所示。得出一个安全序列为prl,pr3zpr0zpr2,pr4oEJ:计算机操作系统实验二SHIYAN22Debug2exeI H 回(2)进程prO请求资源:prO发出请求向量(2 , 2 , 2),由于RequestO不大于Need。,Request。不大于Available。系统试探着为它分配资源

10、。 一:计算叽操作系统实验二shiyan22Debug2,exeI 口 I 回由结果可知,系统不安全。则系统不分配资源,并回收系统预分配给prO的资源。(3)程序运行时选择L进行系统资源的分配。(4)修改资源分配:5结果分析与实验体会在编写程序不断出现错误和改正的过程序中加深了我对银行家算法的理解。这个系统的功能基 本能满足要求,完成了对资源的修改还有用银行家算法和安全性算法来检查是否允许分配资源给进 程。程序主要由两部分组成。第一部分是银行家算法,第二部分是安全性算法。银行家算法1 .如果Request。Need厕转向2;否则,出错2 .如果Requests = Available,则转向3

11、,否则等待3 .系统试探分配请求的资源给进程4 .系统执行安全性算法安全性算法1 .设置两个向量(1) .工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目)(2) .Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False2 .若Finish。 = False&Need= Work,则执行3;否则执行4(1为资源类别)3 .进程P获得第i类资源很!J顺利执行直至完成!并释放资源:Work=Work+Allocation;Finishi=true;转 24 .若所有进程的Finish。 =true,则表示系统安全;否则,不安全!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁