首页 实验2 银行家算法

实验2 银行家算法

举报
开通vip

实验2 银行家算法实验2 银行家算法 实验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 ...

实验2 银行家算法
实验2 银行家算法 实验2 银行家算法(2学时) 一、实验目的 理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。 二、实验内容 编写程序实现银行家算法,并验证程序的正确性。 三、实验要求 编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。 例子:某系统有A、B、C、D 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 所示。 已占资源 最大需求数 进程 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 1 4 0 6 5 6 现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按银行家算法回答下列问题: (1)现在系统是否处于安全状态, (2)如果现在进程P1提出需求(0、4、2、0)个资源的请求,系 统能否满足它的请求, #include //#include #include using namespace std; #define Maxprocess 50 /*最大进程数*/ #define Maxresource 100 /*最大资源数*/ int Available[Maxresource]; /*可用资源数组*/ int MAX[ Maxprocess][Maxresource]; /*最大需求矩阵*/ int Allocation[ Maxprocess][Maxresource]; /*分配矩阵*/ int need [Maxprocess][Maxresource]; /*需求矩阵*/ int Request[Maxprocess][Maxresource]; /*进程需要资源数*/ bool finish[Maxprocess]; /*系统是否有足够的资源分配*/ int p[Maxprocess]; /*记录序列*/ int m,n; /*m个进程,n个资源*/ void Init();/*初始化算法*/ bool Safe(); /*安全性算法*/ void Bank(); /*银行家算法*/ int main() { Init(); Safe(); Bank(); return 1; } void Init() /*初始化算法*/ { int i,j; cout<<"请输入进程的数目:"; /*m个进程,n个资源*/ cin>>m; cout<<"请输入资源的种类数:"; cin>>n; cout<<"请输入每个进程最多所需的各资源数,按照"<>MAX[i][j]; cout<<"请输入每个进程已分配的各资源数,也按照"<>Allocation[i][j]; need[i][j]=MAX[i][j]-Allocation[i][j]; if(need[i][j]<0) { cout<<"您输入的第"<>Available[i]; } } void Bank() /*银行家算法*/ { int i,cusneed; char again; while(1) { cout<<"请输入要申请资源的进程号(注:第1个进程号为0,依次类 推)"<>cusneed; cout<<"请输入进程所请求的各资源的数量"<>Request[cusneed][i]; } for(i=0;ineed[cusneed][i]) { cout<<"您输入的请求数超过进程的需求量!请重新输入!"<Available[i]) { cout<<"您输入的请求数超过系统有的资源数!请重新输入!"<>again; if(again=='y'||again=='Y') { continue; } break; } } bool Safe() /*安全性算法*/ { int i,j,k,l=0; int Work[Maxresource]; for(i=0;iWork[j]) { break; } } if(j==n) { finish[i]=true; for(k=0;k"; } } cout<<""<
本文档为【实验2 银行家算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_447713
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:9
分类:理学
上传时间:2017-09-26
浏览量:50