• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: C/C++
  • 标签:

资源简介

死锁检测源代码

资源截图

代码片段和文件信息

#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;jprintf(“ 资源%d:%d“jAVAILABLE[j]); 
 } 
printf(“\n“); 
printf(“各进程还需要的资源量:\n“); 
for (i=0;i
printf(“ 进程%d:“i); 
for (j=0;jprintf(“资源%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]);
 

评论

共有 条评论

相关资源