下载此文档

银行家算法实验报告计划总结计划电子版.docx


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
该【银行家算法实验报告计划总结计划电子版 】是由【春华秋实】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【银行家算法实验报告计划总结计划电子版 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。精选文档精选文档1精选文档福州大学数学与计算机科学学院《操作系统》上机实验报告专业和班级成绩姓名学号课程名操作系统实验名称银专家算法称实验目的和对随意一个进度提出资源申请,能正确判断出可否把资源分派给该进度。要求银专家算法共有五个进度:p0,p1,p2,p3,p4,三类资源A,B,C,各资源的总数分别为10、5、7,假定某一时刻资源分派状况以下所示:ProcessMaxAllocationNeedAvailable实ABCABABCABC验C内P0753010743332容P1322200122P2902302600P3222211011P4433002431程序代码以下:#include<>#defineM5//进度数#defineN3//资源数structjc{实验步骤intnum;//进度号intmax[N];//最大需要资源数intallocation[N];//已分派资源intneed[N];//还需要资源intfinish;//安全判断};staticavailable[N];//可分派资源voidyhjsf(intx,inta[],jcy[])//银专家算法{intwork[N],i,j,k,l,sum,b;jcv;精选文档精选文档5精选文档sum=0;for(i=0;i<N;i++)//假定分派恳求资源{精选文档精选文档3精选文档work[i]=available[i]-a[i];//y[x].need[i]=y[x].need[i]-a[i];//把改正的可分派资源给予先分派,不安全复原work精选文档精选文档5精选文档y[x].allocation[i]=y[x].allocation[i]+a[i];精选文档精选文档5精选文档}for(i=0;i<M;i++)//循环次数为进度数{for(j=i;j<M;j++){b=0;//初始化赋值for(k=0;k<N;k++){精选文档精选文档5精选文档if(work[k]>=y[j].need[k])//判断资源能否知足第j进度所需精选文档精选文档5精选文档continue;else精选文档精选文档5精选文档b=1;//b为判断资源能否知足为1表示不知足}if(b==0)//知足时互换可履行的进度{v=y[i];y[i]=y[j];y[j]=v;for(l=0;l<N;l++){work[l]=work[l]+y[i].allocation[l];//回收可达成进度资源}y[i].finish=1;//设置此进度达成标记break;}}}for(i=0;i<M;i++)//判断能否安全{sum=sum+y[i].finish;}if(sum==M)//安全{printf("safe\n");available[i]=available[i]-a[i];for(i=0;i<M;i++)printf("%d->",y[i].num);精选文档精选文档5精选文档}else//不安全,撤除恳求资源{printf("notsafe");for(i=0;i<N;i++){y[x].need[i]=y[x].allocation[i]-a[i];//不安全复原y[x].allocation[i]=y[x].allocation[i]-a[i];}}}voidmain(){inti,j,y;精选文档精选文档10精选文档jcx[M];//进度精选文档精选文档5精选文档inta[N];精选文档精选文档5精选文档for(i=0;i<M;i++)//初始化max,allocation,need精选文档精选文档5精选文档{x[i].num=i;精选文档精选文档5精选文档x[i].finish=0;printf("分别输入第%d个进度所需最大资源",i);for(j=0;j<N;j++){scanf("%d",&x[i].max[j]);}printf("分别输入第%d个进度已分派资源",i);for(j=0;j<N;j++){scanf("%d",&x[i].allocation[j]);x[i].need[j]=x[i].max[j]-x[i].allocation[j];}}printf("\n已有进度分派状况");//输出初始化结果printf("\n进度号最大资源以分派资源需要资源");for(i=0;i<M;i++){printf("\n%d",i);for(j=0;j<N;j++){printf("%d",x[i].max[j]);}printf("");for(j=0;j<N;j++){精选文档精选文档5精选文档printf("%d",x[i].allocation[j]);}printf("");for(j=0;j<N;j++){printf("%d",x[i].need[j]);}}printf("\n输入每种资源可用数目");//输出资源各自数目for(i=0;i<N;i++){scanf("%d",&available[i]);}printf("\ninputrequest进度");//输入恳求进度号scanf("%d",&y);printf("\n分别输入第%d个进度所恳求的资源",y);for(i=0;i<N;i++){scanf("%d",&a[i]);}j=0;for(i=0;i<N;i++)//判断能否知足初始条件request<=needrequest<=available{if(a[i]<=x[y].need[i]&&a[i]<=available[i])continue;else{printf("error");j=1;}}if(j==0)//知足调用银专家算法yhjsf(y,a,x);}运转结果:精选文档精选文档16精选文档研究与探讨在实验中设置进度达成标记这点借鉴了查找的相关资料。精选文档精选文档17精选文档

银行家算法实验报告计划总结计划电子版 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人春华秋实
  • 文件大小72 KB
  • 时间2024-04-16