⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duoziyuanyihang.cpp

📁 多资源的银行家算法 通过编写程序模拟实现单处理器系统的调度算法
💻 CPP
字号:
#include<iostream.h>

#define N 3
#define M 4
int R[N],A[M][N],V[N],C[M][N],flag[M]={0,0,0,0},k,h=0,g=0;//k2=0;
bool f;
bool judge(int a[4][3],int c[4][3],int v[3])
{
for(int k1=0;k1<4;k1++)
	for(int i=0;i<4;i++)
	{	k=0;
		for(int j=0;j<3;j++)
			if(flag[i]==0)
{
				if(c[i][j]>v[j])
{				k=1;
				break;
}
}
			else k=1;
		if(k==0)
{		flag[i]=1;
		h++;
		cout<<"P"<<i<<" ";
		for(int g=0;g<3;g++)
		v[g]+=a[i][g];
}
	}

if(h==4)
{
cout<<"可行顺序";
return true;
}
else {cout<<"死锁!";
cout<<h<<endl;	
return false;
}
}
void stop(int i)
{for(int j=0;j<N;j++)
{V[j]+=A[i][j];
C[i][j]+=A[i][j];
A[i][j]=0;
}
}
main()
{//bool judge;
cout<<"系统资源向量:"<<endl;
for(int i=0;i<N;i++)
cin>>R[i];
cout<<"可用资源向量:"<<endl;
for(i=0;i<N;i++)
cin>>V[i];
cout<<"分配矩阵:"<<endl;
for(i=0;i<M;i++)
for(int j=0;j<N;j++)
cin>>A[i][j];
cout<<"请求矩阵:"<<endl;
for(i=0;i<M;i++)
for(int j=0;j<N;j++)
cin>>C[i][j];
cout<<judge(A,C,V);
//if(!judge(A,C,V))
while(1)
{if(!judge(A,C,V))
cout<<"输入你想结束的资源编号"<<endl;
cin>>g;
stop(g);
//k2++;
if(judge(A,C,V))break;
if(!judge(A,C,V) && V[0]==R[0] && V[1]==R[1] && V[2]==R[2]){	cout<<"系统无法实现"<<endl;break;}

}














}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -