银行家算法c语言实现+实验报告
标签:
•
文件类型: .rar
•
文件大小: 4.32MB
•
下载次数: 1
•
操作系统实验 银行家算法+实验报告 完整代码c语言实现
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4721 2011-05-27 20:35 bankank.txt
文件 4721 2011-05-27 20:37 bankCpp1.cpp
文件 3377 2011-05-27 20:31 bankCpp1.dsp
文件 531 2011-05-27 21:50 bankCpp1.dsw
文件 33792 2011-05-27 21:50 bankCpp1.ncb
文件 48640 2011-05-27 21:50 bankCpp1.opt
文件 242 2011-05-27 20:52 bankCpp1.plg
文件 172099 2011-05-27 20:37 bankDebugCpp1.exe
文件 177932 2011-05-27 20:37 bankDebugCpp1.ilk
文件 16436 2011-05-27 20:37 bankDebugCpp1.obj
I.A.... 265964 2011-05-27 20:31 bankDebugCpp1.pch
文件 345088 2011-05-27 20:37 bankDebugCpp1.pdb
文件 41984 2011-05-27 21:18 bankDebugvc60.idb
文件 53248 2011-05-27 20:37 bankDebugvc60.pdb
I.A.... 1031989 2011-05-27 21:21 bankIMAG0109.jpg
I.A.... 1108880 2011-05-27 21:22 bankIMAG0110.jpg
I.A.... 1074147 2011-05-27 21:22 bankIMAG0111.jpg
I.A.... 1020740 2011-05-27 21:22 bankIMAG0112.jpg
文件 173568 2011-05-27 21:48 bank银行家算法实验报告.doc
目录 0 2011-05-27 20:37 bankDebug
目录 0 2011-05-27 21:50 bank
----------- --------- ---------- ----- ----
5578099 21
#include
#include
#include
#define False 0
#define True 1
int Max[100][100]={0};//各进程所需各类资源的最大需求
int Avaliable[100]={0};//系统可用资源
char name[100]={0};//资源的名称
int Allocation[100][100]={0};//系统已分配资源
int Need[100][100]={0};//还需要资源
int Request[100]={0};//请求资源向量
int temp[100]={0};//存放安全序列
int Work[100]={0};//存放系统可提供资源
int M=100;//作业的最大数为100
int N=100;//资源的最大数为100
void showdata()//显示资源矩阵
{
int ij;
printf(“系统目前可用的资源[Avaliable]:
“);
for(i=0;i printf(“%c “name[i]);
printf(“
“);
for (j=0;j printf(“%d “Avaliable[j]);//输出分配资源
printf(“
“);
printf(“ Max Allocation Need
“);
printf(“进程名 “);
for(j=0;j<3;j++)
{
for(i=0;i printf(“%c “name[i]);
printf(“ “);
}
printf(“
“);
for(i=0;i printf(“ %d “i);
for(j=0;j printf(“%d “Max[i][j]);
printf(“ “);
for(j=0;j printf(“%d “Allocation[i][j]);
printf(“ “);
for(j=0;j
printf(“%d “Need[i][j]);
printf(“
“);}
}
int changdata(int i)//进行资源分配
{
int j;
for (j=0;j Avaliable[j]=Avaliable[j]-Request[j];
Allocation[i][j]=Allocation[i][j]+Request[j];
Need[i][j]=Need[i][j]-Request[j];
}
return 1;
}
int safe()//安全性算法
{
int ik=0mapplyFinish[100]={0};
int j;
int flag=0;
Work[0]=Avaliable[0];
Work[1]=Avaliable[1];
Work[2]=Avaliable[2];
for(i=0;i apply=0;
for(j=0;j if (Finish[i]==False&&Need[i][j]<=Work[j]){
apply++;
if(apply==N){
for(m=0;m Work[m]=Work[m]+Allocation[i][m];//变分配数
Finish[i]=True;
temp[k]=i;
i=-1;
k++;
flag++;
}
}
}
}
for(i=0;i if(Finish[i]==False){
printf(“系统不安全
“);//不成功系统不安全
return -1;
}
}
printf(“系统是安全的!
“);//如果安全,输出成功
printf(“分配的序列:“);
for(i=0;i printf(“%d“temp[i]);
if(i“);
}
printf(“
“);
return 0;
}
void share()//利用银行家算法对申请资源对进行判定
{
char ch;
int i=0j=0;
ch=‘y‘;
printf(“请输入要求分配的资源进程号(0-%d):“M-1);
scanf(“%d“&i);//输入须申请的资源号
printf(“请输入进程 %d 申请的资源:
“i);
for(j=0;j {
printf(“%c:“name[j]);
scanf(“%d“&Request[j]);//输入需要申请的资源
}
for (j=0;j if(Request[j]>Need[i][j])//判断申请是否大于需求,若大于则出错
{
printf(“进程 %d申请的资源大于它需要的资源 分配不合理,不予分配!
“i);
ch=‘n‘;
break;
}
else {
if(Request[j]>Avaliable[j])//判断申请是否大于当前资源,若大于则出错
{
printf(“进程%d申请的资源大于系统现在可利用的资源
“i);
printf(“ 分配出错,不予分配!
“);
ch=‘n‘;
break;
}
}
}
if(ch==‘y‘) {
changdata(i);//根据进程需求量变换资源
showdata();//根据进程需求量显示变换后的资源
safe();//根据进程需求量进行银行家算法判断
}
}
int main()//主函数
{
int ijqchoicem
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4721 2011-05-27 20:35 bankank.txt
文件 4721 2011-05-27 20:37 bankCpp1.cpp
文件 3377 2011-05-27 20:31 bankCpp1.dsp
文件 531 2011-05-27 21:50 bankCpp1.dsw
文件 33792 2011-05-27 21:50 bankCpp1.ncb
文件 48640 2011-05-27 21:50 bankCpp1.opt
文件 242 2011-05-27 20:52 bankCpp1.plg
文件 172099 2011-05-27 20:37 bankDebugCpp1.exe
文件 177932 2011-05-27 20:37 bankDebugCpp1.ilk
文件 16436 2011-05-27 20:37 bankDebugCpp1.obj
I.A.... 265964 2011-05-27 20:31 bankDebugCpp1.pch
文件 345088 2011-05-27 20:37 bankDebugCpp1.pdb
文件 41984 2011-05-27 21:18 bankDebugvc60.idb
文件 53248 2011-05-27 20:37 bankDebugvc60.pdb
I.A.... 1031989 2011-05-27 21:21 bankIMAG0109.jpg
I.A.... 1108880 2011-05-27 21:22 bankIMAG0110.jpg
I.A.... 1074147 2011-05-27 21:22 bankIMAG0111.jpg
I.A.... 1020740 2011-05-27 21:22 bankIMAG0112.jpg
文件 173568 2011-05-27 21:48 bank银行家算法实验报告.doc
目录 0 2011-05-27 20:37 bankDebug
目录 0 2011-05-27 21:50 bank
----------- --------- ---------- ----- ----
5578099 21
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)