#include<iostream.h>
#include<string.h>
#include<stdio.h>
#define False 0
#define True 1
int Max[100][100]={0};//各进程所需各类资源的最大需求
int Avaliable[100]={0};//系统可用资源
char name[100]={0};//资源的名称
int Allocation[100][100]={0};//系统已分配资源
int Need[100][100]={0};//还需要资源
int Request[100]={0};//请求资源向量
int temp[100]={0};//存放安全序列
int Work[100]={0};//存放系统可提供资源
int p[100]={0};
int q[100][100]={0};
int z[100][100]={0};
int M=100;//作业的最大数为100
int N=100;//资源的最大数为100
int gg=1;
void showdata()//显示资源矩阵
{
int i,j;
cout<<endl<<"此时刻的资源分配情况为:"<<endl;
cout<<" Max Allocation Need Avaliable"<<endl;
cout<<"进程名 ";
for(j=0;j<4;j++){
for(i=0;i<N;i++)
cout<<name[i]<<" ";
cout<<" ";
}
cout<<endl;
for(i=0;i<M;i++){
cout<<" "<<i<<" ";
for(j=0;j<N;j++)
cout<<Max[i][j]<<" ";
cout<<" ";
for(j=0;j<N;j++)
cout<<Allocation[i][j]<<" ";
cout<<" ";
for(j=0;j<N;j++)
cout<<Need[i][j]<<" ";
if(i==0){
cout<<" ";
for (j=0;j<N;j++)
cout<<Avaliable[j]<<" ";//输出分配资源
}
cout<<endl;
}
}
int changdata(int i)//进行资源分配
{
int j;
for (j=0;j<M;j++) {//p[j]=Avaliable[j];
Avaliable[j]=Avaliable[j]-Request[j];
//q[i][j]=Allocation[i][j];
Allocation[i][j]=Allocation[i][j]+Request[j];
//z[i][j]=Need[i][j];
Need[i][j]=Need[i][j]-Request[j];
}