1 / 8
文档名称:

操作系统实验报告--银行家算法.doc

格式:doc   大小:19KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告--银行家算法.doc

上传人:zxwziyou8 2019/7/28 文件大小:19 KB

下载得到文件列表

操作系统实验报告--银行家算法.doc

相关文档

文档介绍

文档介绍:操作系统实验报告二一:实验标题:实现死锁避免算法:银行家算法。二:实验环境:操作系统:windows7编译器:VisualStudio2010三:设计方案:,理解如何应用银行家算法避免死锁。、资源种类;用2维数组表示最大需求、已分配的资源。从文件获取相关数量。,是的话输出安全序列。四:实验代码:#include<>#include<>#defineP_num5#defineR_num3intAllocation[P_num][R_num],Avaliable[R_num],Max[P_num][R_num];intNeed[P_num][R_num];pare(int*a,int*b,intn){ inti; for(i=0;i<n;i++) if(a[i]<b[i]) return0; return1;}voidadd(int*a,int*b,intn){ inti; for(i=0;i<n;i++) a[i]+=b[i];}voidsubstract(int*a,int*b,intn){ inti; for(i=0;i<n;i++) a[i]-=b[i];}voidassign(int*a,int*b,intn){ inti; for(i=0;i<n;i++) a[i]=b[i];}voidinput(){ FILE*fp; inti,j; if((fp=fopen("","r"))==0){ printf("cannotopenthefile"); exit(0); } for(i=0;i<P_num;++i) for(j=0;j<R_num;++j){ fscanf(fp,"%d",&Allocation[i][j]); } for(i=0;i<P_num;++i) for(j=0;j<R_num;++j){ fscanf(fp,"%d",&Max[i][j]); } for(j=0;j<R_num;++j){ fscanf(fp,"%d",&Avaliable[j]); } fclose(fp); for(i=0;i<P_num;++i) for(j=0;j<R_num;++j){ Need[i][j]=Max[i][j]-Allocation[i][j]; }}intissafe(int*sp){ inti;intcount=0;intn=0; intwork[R_num],finish[P_num]; assign(work,Avaliable,R_num); for(i=0;i<P_num;i++) finish[i]=0; n=P_num; while(n--){ for(i=0;i<P_num;i++) if((finish[i]==0)&&compare(work,Need[i],R_num)){ add(work,Allocation[i],R_num); finish[i]=1; sp[count]=i; count++; } if(count>=P_num) return1; } return0;}intrequest(intpid,int*r,intn){ i