资源简介
死锁检测源代码
代码片段和文件信息
#include
#include
#include
#define M 5
#define N 3
int MAX[M][N]={{753}{322}{902}{222}{433}};
//已分配到的资源量
int ALLOCATION[M][N]={{010}{200}{302}{211}{002}};
//资源需求量
int NEED[M][N]={{743}{122}{600}{011}{431}};
//可用的资源
int AVAILABLE[N]={332};
int Request[N]={000};
int temp[5]={00000};
bool finish[5];
void showdata(){
int ij;
printf(“系统可用的资源数为:\n“);
printf(“ “);
for (j=0;j printf(“ 资源%d:%d“jAVAILABLE[j]);
}
printf(“\n“);
printf(“各进程还需要的资源量:\n“);
for (i=0;i {
printf(“ 进程%d:“i);
for (j=0;j printf(“资源%d:%d“jNEED[i][j]);
}
printf(“\n“);
}
printf(“各进程已分配到的资源量:\n“);
for(i=0;i printf(“ 进程%d:“i);
for (j=0;j printf(“资源%d:%d“jALLOCATION[i][j]);
}
printf(“\n“);
}
}
bool test(){
int i=0j=0lk=0;
for(i=0;i for(l=0;l<=M;l++){
for(i=0;i if(finish[i]==false){
for(j=0;(j // printf(“\n进程%i%d\n“ij);
if(j==N){
finish[i]=true;
for(j=0;j AVAILABLE[j]=AVAILABLE[j]+ALLOCATION[i][j];
temp[k]=i;
k=k+1;
// printf(“\nk=%d\n“k);
if(i==4)i=-1;
}
}
}
if(i==5)i=-1;
}
if(k==M){
printf(“存在安全序列:“);
for(i=0;i printf(“进程%d->“temp[i]);
- 上一篇:C++死锁检测解除算法
- 下一篇:sr830操作手册原版
评论
共有 条评论