《2022年银行家算法模拟实验 .pdf》由会员分享,可在线阅读,更多相关《2022年银行家算法模拟实验 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、淮海工学院计算机工程学院实 验 报 告 书课 程 名 : 操 作 系 统题目:银行家算法模拟实验班级:Gy 计算机 121 学号:2012150261 姓名:张凯评语:成绩:指导教师:批阅时间:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 操作系统实验报告- 1 - 一、实验目的与要求1.目的:用C、C+ 或 Java 语言编写一个简单的银行家算法模拟程序,用银行家算法实现资源分配。本实验可加深对行家算法的理解。2.要
2、求:设计五个进程 P0,P1,P2,P3,P4共享三类资源 A,B,C的系统, A,B,C的资源数量分别为 10,5,7。进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据的情况。二、程序流程图三、主要程序清单#include #include #include #include #define n 10 #define true 1 #define false 0 int N ; / 资源总类int M; /总进程数int Available5
3、0; int Max5050; int Allocation5050=0; int Need5050=0; int Work50=0; int Temp50=0; /存放安全序列号char Name50=0; int Sum50=0; int Request50=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 操作系统实验报告- 2 - void Print() int k=0; cout *资源分配表 *endl; c
4、out Process Max Allocation Need Availableendl; cout A B C A B C A B C A B Cendl; for(int i=0;iM;i+) cout Pi ; for(int j=0;jN;j+) cout Maxij; cout ; for(j=0;jN;j+) cout Allocationij; cout ; for(j=0;jN;j+) cout Needij; cout ; for(j=0;jN;j+) if(k!=3) cout Availablej; k+; 名师资料总结 - - -精品资料欢迎下载 - - - - -
5、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 操作系统实验报告- 3 - coutendl; void Create() int i,j; cout 请输入您要创建进程的数量:M; cout 请输入各类资源的总数:(N 个)endl; for(i=0;iSumi; k1: coutendl; cout 请输入各类进程所需要资源最大数目:(N*M个)endl; for(i=0;iM;i+) for( j=0;jMaxij; if(MaxijSumj) cout 占有资源超过了声明的该资源
6、总数,请重新输入!endl; goto k1; k2: coutendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 操作系统实验报告- 4 - cout 请输入各类进程已分配的各类资源的数目:(N*M个)endl; for(i=0;iM;i+) for(j=0;jAllocationij; if(AllocationijMaxij) cout 占有资源超过了声明的该资源总数,请重新输入!endl; goto k2; i
7、nt p; for(i=0;iN;i+) p=Sumi; for(j=0;jM;j+) p=p-Allocationji; Availablei=p; for(i=0;iM;i+) for(j=0;jN;j+) Needij=Maxij-Allocationij; void restore(int i) int j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 操作系统实验报告- 5 - for(j=0;jN;j+) Av
8、ailablej+=Requestj; Allocationij-=Requestj; Needij+=Requestj; int changedata(int i) int j; for(j=0;jN;j+) Availablej+=Requestj; Allocationij-=Requestj; Needij+=Requestj; return 1; int Safe() / 处理传过来的第几个进程 int i=0; int k=0; int m; int apply,Finish50=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
9、 - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 操作系统实验报告- 6 - int j,flag=0; for(i=0;iN;i+) Worki=Availablei; for(i=0;iM;i+) apply=0; for(j=0;jN;j+) if(Finishi=false&Needij=Workj) apply+; if(apply=N) for(m=0;mN;m+) Workm=Workm+Allocationim; Finishi=true; Tempk+=i; i=-1; flag; for(i=0;iM;
10、i+) if(Finishi=false) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 操作系统实验报告- 7 - cout 系统不安全 ! 本次资源申请不成功!endl; return -1; cout 经安全性检查,系统安全,本次分配成功!endl; cout 安全序列号; for(i=0;iM-1;i+) coutPTempi, ; coutPTempiendl; coutendl; return 0; void d
11、ijkstra() char ch; int i=0,j=0; ch=y; cout 请输入你要请求的资源进程号(0-M-1):i; cout 请输入进程 i 请求 Request变量 endl; for(i=0;iN;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 操作系统实验报告- 8 - coutNamejRequesti; for(i=0;iNeedji) cout 进程 i 申请的资源大于他需要的资源; co
12、ut 分配不合理,不予分配!Availablej) cout 进程 i 申请的资源大于系统可利用的资源; cout 分配出错 ,不予分配 !endl; ch=n; break; if(ch=y) changedata(i); Print(); Safe(); if(Safe()=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - 操作系统实验报告- 9 - restore(i); int main() int c; Crea
13、te(); Print(); Safe(); while(c) cout 银行家算法 endl; cout 1 分配资源 endl; cout 2 离开endl; cout 请选择功能号 :c; switch(c) case 1:dijkstra();break; case 0:c=0;break; default:cout 请正确选择功能号(0-1)endl;break; return 1; 四、程序运行结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 操作系统实验报告- 10 - 五、实验体会通过这次实验,我学会了银行家算法有原理,并用自己已学的知识,结合书本完成了此次实验,收获蛮大名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -
限制150内