1 / 8
文档名称:

死锁检测模拟.doc

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

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

分享

预览

死锁检测模拟.doc

上传人:相惜 2020/10/3 文件大小:23 KB

下载得到文件列表

死锁检测模拟.doc

文档介绍

文档介绍::“资源分配表”文件,每一行包含资源编号、进程编号两项(均用整数表示,并用空格分隔开),记录资源分配给了哪个进程。“进程等待表”文件,每一行包含进程编号、资源编号两项(均用整数表示,并用空格分隔开),记录进程正在等待哪个资源。下面是一个示例:资源分配表:112233进程等待表::程序运行时,首先提示“请输入资源分配表文件的文件名:”;再提示“请输入进程等待表文件的文件名:”。输入两个文件名后,程序将读入两个文件中的有关数据,并按照死锁检测算法进行检测。:第一行输出检测结果:有死锁或无死锁。第二行输出进程循环等待队列,即进程编号(如果有死锁)。:(依据所用语言确定)输入文件名字::XXX为账号。:当任一进程Pj申请一个已被其他进程占用的资源ri时,进行死锁检测。检测算法通过反复查找进程等待表和资源分配表,来确定进程Pj对资源ri的请求是否导致形成环路,若是,便确定出现死锁。:测试教师将事先准备好一组文件(格式为*.txt),从中为每个程序随机指定一至三个作为输入文件(被测试者需从键盘输入指定文件的文件名),并查看程序输出结果。  本程序包括:死锁检测算法  VC++调试通过  (C)copyrightbyNeo  欢迎大家测试请问题请Email:sony006@*/#include<>#include<>#include<>constintMAXQUEUE=100;  //定义表的最大行数typedefstructnode{intresource;intprocess;}cell;upy[MAXQUEUE];upy_quantity;cellwait[MAXQUEUE];intwait_quantity;//初始化函数voidinitial(){inti;for(i=0;i<MAXQUEUE;i++){  occupy[i].process=-1;  occupy[i].resource=-1;  wait[i].process=-1;  wait[i].resource=-1;}occupy_quantity=0;wait_quantity=0;}//读数据文件intreadData(){FILE*fp;charfname[20];inti;cout<<"请输入资源分配表文件的文件名:"<<endl;strcpy(fname,"");//cin>>fname;if((fp=fopen(fname,"r"))==NULL){  cout<<"错误,文件打不开,请检查文件名:)"<<endl;  return0;}else{  while(!feof(fp)){  fscanf(fp,"%d%d",&occupy[occupy_quantity].resource,&occupy[occupy_quantity].process);  occupy_quantity++;  }}cout<<"请输入进程等待表文件的文件名:"<<endl;strcpy