1 / 9
文档名称:

模拟死锁检测算法.doc

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

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

分享

预览

模拟死锁检测算法.doc

上传人:iris028 2019/12/17 文件大小:24 KB

下载得到文件列表

模拟死锁检测算法.doc

文档介绍

文档介绍:模拟死锁检测算法1(输入:“资源分配表”文件,每一行包含资源编号、进程编号两项(均用整数表示,并用空格分隔开),记录资源分配给了哪个进程。“进程等待表”文件,每一行包含进程编号、资源编号两项(均用整数表示,并用空格分隔开),记录进程正在等待哪个资源。下面是一个示例:资源分配表:112233进程等待表:1223312(处理要求:程序运行时,首先提示“请输入资源分配表文件的文件名:”;再提示“请输入进程等待表文件的文件名:”。输入两个文件名后,程序将读入两个文件中的有关数据,并按照死锁检测算法进行检测。3(输出要求:第一行输出检测结果:有死锁或无死锁。第二行输出进程循环等待队列,即进程编号(如果有死锁)。4(文件名约定提交的源程序名字:(依据所用语言确定)输入文件名字::XXX为账号。5(死锁检测算法:当任一进程Pj申请一个已被其他进程占用的资源ri时,进行死锁检测。检测算法通过反复查找进程等待表和资源分配表,来确定进程Pj对资源ri的请求是否导致形成环路,若是,便确定出现死锁。6(测试说明:测试教师将事先准备好一组文件(格式为*.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(fname,"");//cin