1 / 10
文档名称:

死锁检测模拟.docx

格式:docx   大小:38KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

死锁检测模拟.docx

上传人:雨后彩虹 2022/7/29 文件大小:38 KB

下载得到文件列表

死锁检测模拟.docx

文档介绍

文档介绍:Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
死锁检测模拟
模拟死锁检测算法
1. 输入:
“资源分配表”文件,每一行包含资源编号、进程编号两项(
cout<<"请输入进程等待表文件的文件名:"<<endl;
strcpy(fname,"");
rocess,&wait[wait_quantity].resource);
wait_quantity++;
}
}
esource<<" "<<occupy[i].process<<endl;
}
cout<<"───────────────────────"<<endl;
cout<<"进程等待表"<<endl;
cout<<"进程编号资源编号"<<endl;
for(i=0;i<wait_quantity;i++){
cout<<""<<wait[i].resource<<" "<<wait[i].process<<endl;
}
return 1;
}
rocess>max_process){
max_process=occupy[i].process;
}
}
for(i=0;i<wait_quantity;i++){
if(wait[i].process>max_process){
max_process=wait[i].process;
}
}
for(i=0;i<wait_quantity;i++){
for(j=0;j<occupy_quantity;j++){
if(wait[i].resource==occupy[j].resource){
table[wait[i].process][occupy[j].process]=1;
table1[wait[i].process][occupy[j].process]=1;
}
}
}
cout<<"初始等待占用表:"<<endl;
for(i=0;i<max_process+1;i++){
for(j=0;j<max_process+1;j++){
cout<<table[i][j]<<"";
}
cout<<endl;
}
cout<<endl;
for(i=0;i<max_process+1;i++){
for(j=0;j<max_process+1;j++){
for(k=0;k<max_process+1;k++){
table[i][j]=table[i][j]||(table[i][k]&&table[k][j]);
}
}
}
cout<<"检测后的等待占用表:"<<endl;
for(i=0;i<max_process+1;i++){
for(j=0;j<max_process+1;j++){
cout<<table[i][j]<<"";
}
cout<<endl;
}
flag=-1;
for(i=0;i<max_process+1;i++){
if(table[i][i]==1){
flag=i;
break;
}
}
cout<<endl<<endl<<"检测结果"<<endl;
cout<<"───────────────────"<<endl;
i