欢迎来到天天文库
浏览记录
ID:56965817
大小:49.00 KB
页数:7页
时间:2020-07-29
《实验4--利用银行家算法避免死锁.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验10利用银行家算法避免死锁一.实验目的1.加深对死锁概念的理解。2.能够利用银行家算法,有效避免死锁的发生,或检测死锁的存在。二.实验内容利用银行家算法写一个程序,判定系统的安全性。已知某系统有5个进程P0、P1、P2、P3、P4,三类资源A,B,C。死锁检测程序工作时各进程对资源的需求和占用情况如表10-1所示,当前可用资源向量available=(0,0,0)。表10-1进程需求资源情况资源请求进程已占用资源Allocation尚需资源NeedABCABCP0010002P1200222P2303000P3211100P4002002三.实验程序及分析#d
2、efinem3#definen5main(){inttest(intav[],intned[],intall[]);intavailable[m]={0,0,0},need[n][m];intallocation[n][m]={{0,1,0},{2,0,0},{3,0,3},{2,1,1},{0,0,2}};inti,j,g=1;intfinish[n]={0,0,0,0,0};clrscr();printf("pleaseinputtheneedresourcedata");for(i=0;i3、,&need[i][j]);/*输入need*/j=0;/*以下循环用来寻找能够运行完成的进程Pi*/do{for(i=0;i4、]){intz=0;inti;for(i=0;iav[i])break;if(i==m)z=1;if(z==1)for(i=0;i>name[flag];cout<<"数量:";cin>>Avaliable[flag++];}showdata();safe();}voidchangeresources(){//修改资源5、函数cout<<"系统目前可用的资源[Avaliable]:"<>Avaliable[0]>>Avaliable[1]>>Avaliable[2];cout<<"经修改后的系统可用资源为"<6、delresources(){//删除资源charming;inti,flag=1;cout<<"请输入需要删除的资源名称:";do{cin>>ming;for(i=0;i7、添加作业intflag=M;M=M+1;cout<<"请输入该作业的最大需求量[Max]"<>Max[flag][i];Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}intmain()//主函数{inti,j,number,choice,m,n,flag;charming;cout<<"*****************资源管理系统的设计与实现*****************"<8、
3、,&need[i][j]);/*输入need*/j=0;/*以下循环用来寻找能够运行完成的进程Pi*/do{for(i=0;i4、]){intz=0;inti;for(i=0;iav[i])break;if(i==m)z=1;if(z==1)for(i=0;i>name[flag];cout<<"数量:";cin>>Avaliable[flag++];}showdata();safe();}voidchangeresources(){//修改资源5、函数cout<<"系统目前可用的资源[Avaliable]:"<>Avaliable[0]>>Avaliable[1]>>Avaliable[2];cout<<"经修改后的系统可用资源为"<6、delresources(){//删除资源charming;inti,flag=1;cout<<"请输入需要删除的资源名称:";do{cin>>ming;for(i=0;i7、添加作业intflag=M;M=M+1;cout<<"请输入该作业的最大需求量[Max]"<>Max[flag][i];Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}intmain()//主函数{inti,j,number,choice,m,n,flag;charming;cout<<"*****************资源管理系统的设计与实现*****************"<8、
4、]){intz=0;inti;for(i=0;iav[i])break;if(i==m)z=1;if(z==1)for(i=0;i>name[flag];cout<<"数量:";cin>>Avaliable[flag++];}showdata();safe();}voidchangeresources(){//修改资源
5、函数cout<<"系统目前可用的资源[Avaliable]:"<>Avaliable[0]>>Avaliable[1]>>Avaliable[2];cout<<"经修改后的系统可用资源为"<6、delresources(){//删除资源charming;inti,flag=1;cout<<"请输入需要删除的资源名称:";do{cin>>ming;for(i=0;i7、添加作业intflag=M;M=M+1;cout<<"请输入该作业的最大需求量[Max]"<>Max[flag][i];Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}intmain()//主函数{inti,j,number,choice,m,n,flag;charming;cout<<"*****************资源管理系统的设计与实现*****************"<8、
6、delresources(){//删除资源charming;inti,flag=1;cout<<"请输入需要删除的资源名称:";do{cin>>ming;for(i=0;i7、添加作业intflag=M;M=M+1;cout<<"请输入该作业的最大需求量[Max]"<>Max[flag][i];Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}intmain()//主函数{inti,j,number,choice,m,n,flag;charming;cout<<"*****************资源管理系统的设计与实现*****************"<8、
7、添加作业intflag=M;M=M+1;cout<<"请输入该作业的最大需求量[Max]"<>Max[flag][i];Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}intmain()//主函数{inti,j,number,choice,m,n,flag;charming;cout<<"*****************资源管理系统的设计与实现*****************"<
8、
此文档下载收益归作者所有