資源簡介
死鎖檢測源代碼
代碼片段和文件信息
#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操作手冊原版
評論
共有 條評論