银行家算法c银行家算法的C语言程序
银行家算法c 时间:2022-02-23 阅读:(
)
银行家算法的C语言程序
#include <stdio.h>
#define n 5 //进程个数
#define m 3 //资源种类
#define false 0
#define true 1
int Available[m]={2,3,3},Allocation[n+1][m]={0,0,0,2,1,2,4,0,2,3,0,5,2,0,4,3,1,4},Need[n+1][m]={0,0,0,3,4,7,1,3,4,0,0,3,2,2,1,1,1,0};//可利用资源向量Available 最大需求矩阵Max分配矩阵Allocation需求矩阵Need
int Available1[m],Need1[n][m],Allocation1[n][m];
int h;
int safede() //安全状态判别算法
{
int i,j,work[m],finish[n],tag=n;
for(i=0;i<m;i++)work[i]=Available1[i];
for(i=0;i<n;i++)finish[i]=0;
while(tag--)
{
for(i=0;i<n;i++)
{
if(finish[i]==0)
{
for(j=0;j<m;j++)if(Need1[h][j]<=work[j])continue;
if(j==m)
{
for(j=0;j<m;j++)
{
work[j]=work[j]+Allocation1[h][j];
finish[j]=1;
}
}
}
}
}
for(i=0;i<n;i++)if(finish[i]==1)continue;
if(i==n)return 1;
else return 0;
}
int main()
{
int i,j,request[m];
while(1)
{
printf("输入进程类型:
P = ");
scanf("%d",&h);
printf("输入请求资源向量:
");
for(i=0;i<m;i++)scanf("%d",&request[i]);
for(i=0;i<m;i++)
{
Available1[i]=Available[i];
Allocation1[h][i]=Allocation[h][i];
Need1[h][i]=Need[h][i];
}
for(i=0;i<m;i++)
{
if (!(request[i]<=Need[h][i]))
{
printf("非法请求!!!
");
break; //非法请求,终止
}
}
if(i==m)
{
for(i=0;i<m;i++)
{
if (!(request[i]<=Available[i]))
{
printf("P%d阻塞!!!
",h);
break; //进程阻塞,终止
}
}
}
if(i==m)
{
for(i=0;i<m;i++) //试探性分配
{
Available1[i]=Available1[i] - request[i];
Allocation1[h][i]=Allocation1[h][i]+request[i];
Need1[h][i]=Need1[h][i]-request[i];
}
if(safede()==0) printf("资源分配后系统不是处于安全状态!
"); //若新状态安全,则实际分配资源给Pi,否则取消试探性分配
else
{
printf("资源分配成功!
");
for(i=0;i<m;i++)
{
Available[i]=Available1[i];
Allocation[h][i]=Allocation1[h][i];
Need[h][i]=Need1[h][i];
}
}
}
printf("可利用资源:
");
for(i=0;i<m;i++)printf("%d ",Available[i]);
printf("
分配资源:
");
for(i=1;i<=n;i++)
{
for(j=0;j<m;j++)
printf("%d ",Allocation[i][j]);
printf("
");
}
printf("需求矩阵:
");
for(i=1;i<=n;i++)
{
for(j=0;j<m;j++)
printf("%d ",Need[i][j]);
printf("
");
}
printf("请求结束!
");
printf("
");
}
return 0;
}
昨天我们很多小伙伴们应该都有看到,包括有隔壁的一些博主们都有发布Vultr商家新的新用户注册福利活动。以前是有赠送100美元有效期30天的,这次改成有效期14天。早年才开始的时候有效期是60天的,这个是商家行为,主要还是吸引到我们后续的充值使用,毕竟他们的体验金赠送,在同类商家中算是比较大方的。昨天活动内容:重新调整Vultr新注册用户赠送100美元奖励金有效期14天今天早上群里的朋友告诉我,两年...
PacificRack最近促销上瘾了,活动频繁,接二连三的追加便宜VPS秒杀,PacificRack在 7月中下旬已经推出了五款秒杀VPS套餐,现在商家又新增了三款更便宜的特价套餐,年付低至7.2美元,这已经是本月第三波促销,带宽都是1Gbps。PacificRack 7月秒杀VPS整个系列都是PR-M,也就是魔方的后台管理。2G内存起步的支持Windows 7、10、Server 2003\20...
WordPress经典外贸企业建站主题,经典配色扁平化简约设计+跨屏自适应移动端设备,特色外贸企业建站功能模块+在线Inquiry询单功能,更有利于Google等英文搜索优化和站点收录。采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时支持移动终端的常用...
银行家算法c为你推荐
外国最火开放的直播app手机上看国外电视直播软件哪个好素数算法求100以内的素数的算法暴力破解rar暴力破解rar,一个15位左右的密码,得用多长时间。(双核。2g内存)上行宽带上行宽带是什么?wow服务器状态我电脑上的魔兽服务器状态很好.但是还是玩不起来.请问可以玩了不?动画分镜头脚本动漫脚本和分镜头的区别?懂的进yui3求Yui的详细资料gbk内码Gbk内码查询彩信平台目前国内有哪些短信平台服务商,怎么排名?泛微协同办公系统泛微软件怎么样?做协同办公的,我要来这做销售前景怎么样?请大家对这个行业或公司了解的给些建议。
哈尔滨域名注册 我的世界服务器租用 vps代购 asp.net主机 狗爹 台湾服务器 英文简历模板word 网通服务器ip 网通代理服务器 三拼域名 个人域名 ftp教程 hdd gtt 吉林铁通 google台湾 空间租赁 防cc攻击 小夜博客 reboot 更多