欢迎来到天天文库
浏览记录
ID:20730817
大小:96.50 KB
页数:15页
时间:2018-10-15
《银行家算法及安全算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验名称:银行家算法实验时间:2015.04.20实验目的:1:利用银行家算法避免死锁2:掌握银行家算法的基本原理3:掌握安全算法的基本原理实验仪器:PCvc6.0实验原理:1:银行家算法的基本原理2:安全算法的基本原理实验内容:请使用银行家算法来避免死锁的产生程序代码:(供参考)#include#include#include#defineFalse0#defineTrue1intMax[100][100]={0};//各进程所需各类资源的最大需求intAvaliable[100]={0}
2、;//系统可用资源charname[100]={0};//资源的名称intAllocation[100][100]={0};//系统已分配资源intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量inttemp[100]={0};//存放安全序列intWork[100]={0};//存放系统可提供资源intM=100;//作业的最大数为100intN=100;//资源的最大数为100voidshowdata()//显示资源矩阵{inti,j;cout<<"系统目前可用的资源[Avaliable
3、]:"<4、out<5、[j]-Request[j];}return1;}intsafe()//安全性算法{inti,k=0,m,apply,Finish[100]={0};intj;intflag=0;Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];for(i=0;i6、m]=Work[m]+Allocation[i][m];//变分配数Finish[i]=True;temp[k]=i;i=-1;k++;flag++;}}}}for(i=0;i";}cout<7、return0;}voidshare()//利用银行家算法对申请资源对进行判定{charch;inti=0,j=0;ch='y';cout<<"请输入要求分配的资源进程号(0-"<>i;//输入须申请的资源号cout<<"请输入进程"<>Request[j];//输入需要申请的资源}for(j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错{c8、out<<"进程"<
4、out<5、[j]-Request[j];}return1;}intsafe()//安全性算法{inti,k=0,m,apply,Finish[100]={0};intj;intflag=0;Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];for(i=0;i6、m]=Work[m]+Allocation[i][m];//变分配数Finish[i]=True;temp[k]=i;i=-1;k++;flag++;}}}}for(i=0;i";}cout<7、return0;}voidshare()//利用银行家算法对申请资源对进行判定{charch;inti=0,j=0;ch='y';cout<<"请输入要求分配的资源进程号(0-"<>i;//输入须申请的资源号cout<<"请输入进程"<>Request[j];//输入需要申请的资源}for(j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错{c8、out<<"进程"<
5、[j]-Request[j];}return1;}intsafe()//安全性算法{inti,k=0,m,apply,Finish[100]={0};intj;intflag=0;Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];for(i=0;i6、m]=Work[m]+Allocation[i][m];//变分配数Finish[i]=True;temp[k]=i;i=-1;k++;flag++;}}}}for(i=0;i";}cout<7、return0;}voidshare()//利用银行家算法对申请资源对进行判定{charch;inti=0,j=0;ch='y';cout<<"请输入要求分配的资源进程号(0-"<>i;//输入须申请的资源号cout<<"请输入进程"<>Request[j];//输入需要申请的资源}for(j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错{c8、out<<"进程"<
6、m]=Work[m]+Allocation[i][m];//变分配数Finish[i]=True;temp[k]=i;i=-1;k++;flag++;}}}}for(i=0;i";}cout<7、return0;}voidshare()//利用银行家算法对申请资源对进行判定{charch;inti=0,j=0;ch='y';cout<<"请输入要求分配的资源进程号(0-"<>i;//输入须申请的资源号cout<<"请输入进程"<>Request[j];//输入需要申请的资源}for(j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错{c8、out<<"进程"<
7、return0;}voidshare()//利用银行家算法对申请资源对进行判定{charch;inti=0,j=0;ch='y';cout<<"请输入要求分配的资源进程号(0-"<>i;//输入须申请的资源号cout<<"请输入进程"<>Request[j];//输入需要申请的资源}for(j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错{c
8、out<<"进程"<
此文档下载收益归作者所有