第一范文网 - 专业文章范例文档资料分享平台

大作业 银行家算法课程设计报告

来源:用户分享 时间:2025/7/23 21:07:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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 i,k=0,m,apply,Finish[100]={0}; int j;

int flag=0;

Work[0]=Avaliable[0]; Work[1]=Avaliable[1]; Work[2]=Avaliable[2]; for(i=0;i

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(\系统不安全\\n\不成功系统不安全 return -1; } }

printf(\系统是安全的!\\n\如果安全,输出成功 printf(\分配的序列:\

for(i=0;i

printf(\

return 0; }

void share()//利用银行家算法对申请资源对进行判定 {

char ch; int i=0,j=0; ch='y';

printf(\请输入要求分配的资源进程号(0-%d):\ scanf(\输入须申请的资源号 printf(\请输入进程 %d 申请的资源:\\n\for(j=0;j

printf(\

scanf(\输入需要申请的资源 }

for (j=0;j

if(Request[j]>Need[i][j])//判断申请是否大于需求,若大于则出错 {

printf(\进程 %d申请的资源大于它需要的资源, 分配不合理,不予分配!\\n\ ch='n';

break; }

else {

if(Request[j]>Avaliable[j])//判断申请是否大于当前资源,若大于则出错 {

printf(\进程%d申请的资源大于系统现在可利用的资源\\n\ printf(\分配出错,不予分配!\\n\ ch='n'; break; } } }

if(ch=='y') {

changdata(i);//根据进程需求量变换资源 showdata();//根据进程需求量显示变换后的资源 safe();//根据进程需求量进行银行家算法判断 } }

int main()//主函数

{

int i,j,q,choice,m,n,flag; char ming;

printf(\请首先输入系统可供资源种类的数量:\ scanf(\ N=n; for(i=0;i

// printf(\ printf(\请输入作业的数量:\scanf(\ M=m; printf(\请输入各进程的最大需求量%d*%d矩阵[Max]:\\n\ for(i=0;i

scanf(\ if(Allocation[i][j]>Max[i][j]) flag=1; Need[i][j]=Max[i][j]-Allocation[i][j]; } if(flag)

printf(\申请的资源大于最大需求量,请重新输入!\\n\ }while(flag);

showdata();//显示各种资源

safe();//用银行家算法判定系统是否安全 while(choice) { printf(\ printf(\ 0:离开 \\n\ printf(\ 1:分配资源 \\n\ printf(\请选择功能号:\ scanf(\ switch(choice) {

case 1: share();break; case 0: break;

default: printf(\请正确选择功能号(0-1)!\\n\ } }

return 1;

四、程序运行结果及分析

T0 时刻的资源分配表(各种资源的数量分别为:10、5、7) 资源情况 进程 P0 P1 P2 P3 P4

Max A B C 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 Allocation A B C 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 Available A B C 3 3 2

运行结果

五、课程设计心得与体会

通过这次实验,我了解了银行家算法的原理,在编写和调试程序过程中,我的算法和编程能力提高了很多

六.参考文献:

《计算机操作系统》第四版,《C程序设计教程》谭浩强。

搜索更多关于: 大作业 银行家算法课程设计报告 的文档
大作业 银行家算法课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2u42c2welm3bj0w6iip07zlrl1bkfq0131c_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top