2022年2022年计算机操作系统实验银行家算法 .pdf
《2022年2022年计算机操作系统实验银行家算法 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机操作系统实验银行家算法 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验 2 银行家算法( 2 学时)一、实验目的理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。二、实验内容编写程序实现银行家算法,并验证程序的正确性。三、实验要求编制模拟银行家算法的程序, 并以下面给出的例子验证所编写的程序的正确性。例子:某系统有 A、B、C、D 4 类资源共 5 个进程( P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。进程已占资源最大需求数A B C D A B C D P0 0 0 1 2 0 0 1 2 P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 6 3 2 0 6 5 2 P4 0 0
2、1 4 0 6 5 6 现在系统中 A、B、C、D 4 类资源分别还剩1、5、2、0 个,请按银行家算法回答下列问题:(1)现在系统是否处于安全状态?(2)如果现在进程 P1提出需求( 0、4、2、0)个资源的请求,系名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 统能否满足它的请求?程序代码( java)package wcm2; public class BankerAlgorithm int phave=0,0,1,2,1
3、,0,0,0,1,3,5,4,0,6,3,2,0,0,1,4; int pneed=0,0,1,2,1,7,5,0,2,3,5,6,0,6,5,2,0,6,5,6; int work=1,5,2,0; int self=new int5; public void ehange(int p,int a,int b,int c,int d) System.out.println( 假如把资源: +a+b+c+d+ 给进程 p+p); int m=a,b,c,d; for(int i=0;im.length;i+)/ 把资源给进程 if(mi=worki) phavepi=mi+phavepi; w
4、orki=worki-mi; else char ch=(char)(A+i); System.out.println( 资源 +ch+ 不够! ); if(this.safety() System.out.println( 可以把资源给p+p); this.showInfoSelf(); else System.out.print( 该状态是非安全态,); System.out.println( 不可以把资源给p+p); this.back(p, m); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
5、 - - - - 第 2 页,共 6 页 - - - - - - - - - public boolean safety() /5 个进程是否都在安全态下 boolean b=false; int count=0; boolean bool=true,true,true,true,true; this.showWork1(); for(int k=0;k5;k+) for(int i=0;i5;i+) if(booli=true) if(pare(i) booli=false; this.selfcount=i; /this.showWork2(count); 按进程名显示this.showW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机操作系统实验银行家算法 2022 计算机 操作系统 实验 银行家 算法
限制150内