死鎖檢測(cè)模擬_第1頁(yè)
死鎖檢測(cè)模擬_第2頁(yè)
死鎖檢測(cè)模擬_第3頁(yè)
死鎖檢測(cè)模擬_第4頁(yè)
死鎖檢測(cè)模擬_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、模擬死鎖檢測(cè)算法1輸入:“資源分配表”文件,每一行包含資源編號(hào)、進(jìn)程編號(hào)兩項(xiàng)(均用整數(shù)表示,并用空格分隔開),記錄資源分配給了哪個(gè)進(jìn)程?!斑M(jìn)程等待表”文件,每一行包含進(jìn)程編號(hào)、資源編號(hào)兩項(xiàng)(均用整數(shù)表示,并用空格分隔開),記錄進(jìn)程正在等待哪個(gè)資源。下面是一個(gè)示例:資源分配表:123進(jìn)程等待表:2312處理要求:程序運(yùn)行時(shí),首先提示“請(qǐng)輸入資源分配表文件的文件名:”;再提示“請(qǐng)輸入進(jìn)程等待表文件的文件名:”。輸入兩個(gè)文件名后,程序?qū)⒆x入兩個(gè)文件中的有關(guān)數(shù)據(jù),并按照死鎖檢測(cè)算法進(jìn)行檢測(cè)。3輸出要求:第一行輸出檢測(cè)結(jié)果:有死鎖或無(wú)死鎖。第二行輸出進(jìn)程循環(huán)等待隊(duì)列,即進(jìn)程編號(hào)(如果有死鎖)。4文件名約

2、定提交的源程序名字:resourceXXX.c或者resourceXXX.cpp(依據(jù)所用語(yǔ)言確定)輸入文件名字:可由用戶指定結(jié)果輸出到resultXXX.txt中其中:XXX為賬號(hào)。5死鎖檢測(cè)算法:當(dāng)任一進(jìn)程Pj申請(qǐng)一個(gè)已被其他進(jìn)程占用的資源ri時(shí),進(jìn)行死鎖檢測(cè)。檢測(cè)算法通過(guò)反復(fù)查找進(jìn)程等待表和資源分配表,來(lái)確定進(jìn)程Pj對(duì)資源ri的請(qǐng)求是否導(dǎo)致形成環(huán)路,若是,便確定出現(xiàn)死鎖。6測(cè)試說(shuō)明:測(cè)試教師將事先準(zhǔn)備好一組文件(格式為*.txt),從中為每個(gè)程序隨機(jī)指定一至三個(gè)作為輸入文件(被測(cè)試者需從鍵盤輸入指定文件的文件名),并查看程序輸出結(jié)果。本程序包括:死鎖檢測(cè)算法VC+調(diào)試通過(guò)(C)copyr

3、ightbyNeo歡迎大家測(cè)試請(qǐng)問(wèn)題請(qǐng)Email:sony006163*/#include#include#includeconstintMAXQUEUE=100;/定義表的最大行數(shù)typedefstructnodeintresource;intprocess;cell;celloccupyMAXQUEUE;intoccupy_quantity;cellwaitMAXQUEUE;intwait_quantity;初始化函數(shù)voidinitial()inti;for(i=0;iMAXQUEUE;i+)cess=-1;occupyi.resource=-1;

4、cess=-1;waiti.resource=-1;occupy_quantity=0;wait_quantity=0;讀數(shù)據(jù)文件intreadData()FILE*fp;charfname20;inti;cout請(qǐng)輸入資源分配表文件的文件名:fname;if(fp=fopen(fname,r)=NULL)cout錯(cuò)誤,文件打不開,請(qǐng)檢查文件名:)endl;return0;elsewhile(!feof(fp)fscanf(fp,%d%d,&occupyoccupy_quantity.resource,&occupyoccupy_cess);occupy_quantit

5、y+;cout請(qǐng)輸入進(jìn)程等待表文件的文件名:fname;if(fp=fopen(fname,r)=NULL)cout錯(cuò)誤,文件打不開,請(qǐng)檢查文件名:)endl;return0;elsewhile(!feof(fp)fscanf(fp,%d%d,&waitwait_cess,&waitwait_quantity.resource);wait_quantity+;輸出所讀入的數(shù)據(jù)coutendlendl輸出所讀入的數(shù)據(jù)endl;coutendl;cout資源分配表endl;cout資源編號(hào)進(jìn)程編號(hào)endl;for(i=0;ioccupy_quantity;i+)coutoc

6、cessendl;coutendl;cout進(jìn)程等待表endl;cout進(jìn)程編號(hào)資源編號(hào)endl;for(i=0;iwait_quantity;i+)cessendl;return1;檢測(cè)voidcheck()inttableMAXQUEUEMAXQUEUE;inttable1MAXQUEUEMAXQUEUE;inti,j,k;intflag,t,p;intmax_process;初始化表格for(i=0;iMAXQUEUE;i+)for(j=0;jMAXQUEUE;j+)tableij=0

7、;table1ij=0;先找到進(jìn)程最大編號(hào)max_process=-1;for(i=0;imax_process)max_process=cess;for(i=0;imax_process)max_process=cess;for(i=0;iwait_quantity;i+)for(j=0;joccupy_quantity;j+)if(waiti.resource=occupyj.resource)cess=1;cess=1;cout初始

8、等待占用表:endl;for(i=0;imax_process+1;i+)for(j=0;jmax_process+1;j+)couttableij;coutendl;coutendl;for(i=0;imax_process+1;i+)for(j=0;jmax_process+1;j+)for(k=0;kmax_process+1;k+)tableij=tableij|(tableik&tablekj);cout檢測(cè)后的等待占用表:endl;for(i=0;imax_process+1;i+)for(j=0;jmax_process+1;j+)couttableij;coutendl;fla

9、g=-1;for(i=0;imax_process+1;i+)if(tableii=1)flag=i;break;coutendlendl檢測(cè)結(jié)果endl;coutendl;if(flag!=-1)cout存在死鎖endl;cout進(jìn)程循環(huán)等待隊(duì)列:;p=flag;/存在進(jìn)程循環(huán)等待隊(duì)列的那一進(jìn)程進(jìn)程循環(huán)等待隊(duì)列中的所有進(jìn)程是table表中的這一行是1的進(jìn)程,只是順序要再確定t=1;while(t)coutp;for(j=0;jmax_process+1;j+)if(table1pj=1)if(tablejflag=1)p=j;break;if(p=flag)t=0;coutflagendl;elsecout不存在死鎖endl;顯示信息函數(shù)voidversion()coutendlendl;coutendl;cout死鎖檢測(cè)算法endl;coutendl;cout(c)AllRightReservedN

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論