亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? (十)死鎖檢測算法.txt

?? 主要集成了操作系統的主要算法
?? TXT
字號:
(十)死鎖檢測算法 

模擬死鎖檢測算法 
1. 輸入: 
“資源分配表”文件,每一行包含資源編號、進程編號兩項(均用整數表示,并用空格分隔開),記錄資源分配給了哪個進程。 
“進程等待表”文件,每一行包含進程編號、資源編號兩項(均用整數表示,并用空格分隔開),記錄進程正在等待哪個資源。 
下面是一個示例: 
資源分配表: 
1 1 
2 2 
3 3 
進程等待表: 
1 2 
2 3 
3 1 
2. 處理要求: 
程序運行時,首先提示“請輸入資源分配表文件的文件名:”;再提示“請輸入進程等待表文件的文件名:”。 
輸入兩個文件名后,程序將讀入兩個文件中的有關數據,并按照死鎖檢測算法進行檢測。 
3. 輸出要求: 
第一行輸出檢測結果:有死鎖 或 無死鎖。 
第二行輸出進程循環等待隊列,即進程編號(如果有死鎖)。 
4. 文件名約定 
提交的源程序名字:resourceXXX.c或者resourceXXX.cpp(依據所用語言確定) 
輸入文件名字:可由用戶指定 
結果輸出到resultXXX.txt中 
其中:XXX為賬號。 
5. 死鎖檢測算法:當任一進程Pj申請一個已被其他進程占用的資源ri時,進行死鎖檢測。檢測算法通過反復查找進程等待表和資源分配表, 
來確定進程Pj對資源ri的請求是否導致形成環路,若是,便確定出現死鎖。 
6. 測試說明:測試教師將事先準備好一組文件(格式為*.txt),從中為每個程序隨機指定一至三個作為輸入文件 
(被測試者需從鍵盤輸入指定文件的文件名),并查看程序輸出結果。 

本程序包括:死鎖檢測算法 


VC++調試通過 

(C)copyright by Neo 

歡迎大家測試 請問題請Email:sony006@163.com*/ 

#include<stdio.h> 
#include<iostream.h> 
#include<string.h> 

const int MAXQUEUE=100; //定義表的最大行數 

typedef struct node{ 
int resource; 
int process; 
}cell; 

cell occupy[MAXQUEUE]; 
int occupy_quantity; 
cell wait[MAXQUEUE]; 
int wait_quantity; 


//初始化函數 
void initial() 
{ 
int i; 

for(i=0;i<MAXQUEUE;i++){ 
occupy.process=-1; 
occupy.resource=-1; 

wait.process=-1; 
wait.resource=-1; 
} 
occupy_quantity=0; 
wait_quantity=0; 
} 


//讀數據文件 
int readData() 
{ 
FILE *fp; 
char fname[20]; 
int i; 

cout<<"請輸入資源分配表文件的文件名:"<<endl; 
strcpy(fname,"10trouble1.txt"); 
//cin>>fname; 
if((fp=fopen(fname,"r"))==NULL){ 
cout<<"錯誤,文件打不開,請檢查文件名"<<endl; 
return 0; 
} 
else{ 
while(!feof(fp)){ 
fscanf(fp,"%d %d",&occupy[occupy_quantity].resource,&occupy[occupy_quantity].process); 
occupy_quantity++; 
} 
} 

cout<<"請輸入進程等待表文件的文件名:"<<endl; 
strcpy(fname,"10trouble2.txt"); 
//cin>>fname; 
if((fp=fopen(fname,"r"))==NULL){ 
cout<<"錯誤,文件打不開,請檢查文件名"<<endl; 
return 0; 
} 
else{ 
while(!feof(fp)){ 
fscanf(fp,"%d %d",&wait[wait_quantity].process,&wait[wait_quantity].resource); 
wait_quantity++; 
} 
} 

//輸出所讀入的數據 
cout<<endl<<endl<<"輸出所讀入的數據"<<endl; 
cout<<"━━━━━━━━━━━━━━━━━━━━━━━"<<endl; 
cout<<"資源分配表"<<endl; 
cout<<"資源編號 進程編號"<<endl; 

for(i=0;i<occupy_quantity;i++){ 
cout<<" "<<occupy.resource<<" "<<occupy.process<<endl; 
} 
cout<<"───────────────────────"<<endl; 
cout<<"進程等待表"<<endl; 
cout<<"進程編號 資源編號"<<endl; 

for(i=0;i<wait_quantity;i++){ 
cout<<" "<<wait.resource<<" "<<wait.process<<endl; 
} 
return 1; 
} 


//檢測 
void check() 
{ 
int table[MAXQUEUE][MAXQUEUE]; 
int table1[MAXQUEUE][MAXQUEUE]; 

int i,j,k; 
int flag,t,p; 
int max_process; 


//初始化表格 

for(i=0;i<MAXQUEUE;i++){ 
for(j=0;j<MAXQUEUE;j++){ 
table[j]=0; 
table1[j]=0; 
} 
} 

//先找到進程最大編號 
max_process=-1; 
for(i=0;i<occupy_quantity;i++){ 
if(occupy.process>max_process){ 
max_process=occupy.process; 
} 
} 
for(i=0;i<wait_quantity;i++){ 
if(wait.process>max_process){ 
max_process=wait.process; 
} 
} 

for(i=0;i<wait_quantity;i++){ 
for(j=0;j<occupy_quantity;j++){ 
if(wait.resource==occupy[j].resource){ 
table[wait.process][occupy[j].process]=1; 
table1[wait.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[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[j]=table[j]||(table[k]&&table[k][j]); 
} 
} 
} 
cout<<"檢測后的等待占用表:"<<endl; 

for(i=0;i<max_process+1;i++){ 
for(j=0;j<max_process+1;j++){ 
cout<<table[j]<<" "; 
} 
cout<<endl; 
} 

flag=-1; 
for(i=0;i<max_process+1;i++){ 
if(table==1){ 
flag=i; 
break; 
} 
} 
cout<<endl<<endl<<"檢測結果"<<endl; 
cout<<"───────────────────"<<endl; 
if(flag!=-1){ 
cout<<"存在死鎖"<<endl; 
cout<<"進程循環等待隊列:"; 

p=flag; //存在進程循環等待隊列的那一進程 
//進程循環等待隊列中的所有進程是table表中的這一行是1的進程,只是順序要再確定 
t=1; 
while(t){ 
cout<<p<<" "; 
for(j=0;j<max_process+1;j++){ 
if(table1[p][j]==1){ 
if(table[j][flag]==1){ 
p=j; 
break; 
} 
} 
} 
if(p==flag)t=0; 
} 
cout<<flag<<endl; 
} 
else{ 
cout<<"不存在死鎖"<<endl; 
} 
} 
//顯示版權信息函數 
void version() 
{ 
cout<<endl<<endl; 

cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl; 
cout<<" ┃      死 鎖 檢 測 算 法         ┃"<<endl; 
cout<<" ┠───────────────────────┨"<<endl; 
cout<<" ┃   (c)All Right Reserved Neo       ┃"<<endl; 
cout<<" ┃      sony006@163.com          ┃"<<endl; 
cout<<" ┃     version 2004 build 1122      ┃"<<endl; 
cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl; 
cout<<endl<<endl; 
} 

void main() 
{ 
int flag; 

version(); 

initial(); 

flag=readData(); 

if(flag)check(); 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区二区| 51精品视频一区二区三区| 午夜久久久久久久久久一区二区| 国产精品视频免费| 精品国产sm最大网站免费看| 91精品国产综合久久精品麻豆| 欧美日韩精品久久久| 欧美揉bbbbb揉bbbbb| 欧美三级中文字幕| 欧美色精品在线视频| 91麻豆精品91久久久久久清纯| 欧美三级乱人伦电影| 3d动漫精品啪啪| 91精品国产综合久久香蕉的特点| 91精品国产综合久久精品麻豆| 91精品国产综合久久久久久久| 日韩欧美成人一区二区| 久久丝袜美腿综合| 国产精品成人免费在线| 亚洲综合偷拍欧美一区色| 三级成人在线视频| 久久疯狂做爰流白浆xx| 国产麻豆成人传媒免费观看| 国产精品99久| 欧洲国内综合视频| 日韩亚洲欧美一区| 欧美国产精品一区二区| 亚洲久本草在线中文字幕| 天堂成人国产精品一区| 国产自产v一区二区三区c| 成人av在线电影| 欧洲一区二区三区免费视频| 日韩免费观看2025年上映的电影| 国产欧美日韩视频在线观看| 亚洲一区二区在线免费看| 蜜桃精品视频在线观看| www.久久精品| 欧美精品 国产精品| 国产欧美日韩精品一区| 一区二区三区在线视频免费 | 精品国产网站在线观看| 中文字幕一区二区不卡| 婷婷六月综合网| av午夜一区麻豆| 日韩欧美一区在线| 最新国产精品久久精品| 日本欧美久久久久免费播放网| 成人久久18免费网站麻豆 | 2020国产精品| 亚洲自拍与偷拍| 国产91色综合久久免费分享| 制服丝袜av成人在线看| 综合久久给合久久狠狠狠97色| 精品中文字幕一区二区小辣椒| 色吧成人激情小说| 国产精品美女久久久久久久久| 青青青伊人色综合久久| 在线免费观看日韩欧美| 国产精品色在线观看| 久久精工是国产品牌吗| 欧美日韩精品系列| 亚洲精品国产成人久久av盗摄| 国产精品影视在线| 精品sm捆绑视频| 日本vs亚洲vs韩国一区三区二区 | 欧美日韩一二区| 亚洲精品乱码久久久久久黑人 | 亚洲精品老司机| av在线播放不卡| 国产精品午夜电影| 国产91精品欧美| 亚洲国产经典视频| 国产不卡视频在线观看| 久久久久久久久久久久久女国产乱 | 18成人在线观看| 成人一区二区视频| 欧美国产欧美综合| 成人激情小说网站| 国产欧美日韩精品a在线观看| 国内精品久久久久影院色 | 国产精一品亚洲二区在线视频| 日韩一区二区在线播放| 秋霞午夜av一区二区三区| 欧美久久久久久蜜桃| 亚洲国产sm捆绑调教视频| 一本大道久久精品懂色aⅴ| 亚洲视频免费在线观看| 99精品久久久久久| 一区二区三区不卡在线观看 | 欧美成人video| 另类成人小视频在线| 久久亚洲二区三区| 成人激情图片网| 亚洲一区二区三区四区中文字幕| 欧美日韩一二区| 久久精品99国产精品日本| 国产欧美精品一区二区三区四区 | 日本成人在线电影网| 精品国产乱码久久久久久久久| 国产综合色精品一区二区三区| 欧美激情一区二区三区不卡| 91免费观看国产| 日韩精品视频网| 国产亚洲综合av| 97精品国产露脸对白| 亚洲123区在线观看| 精品噜噜噜噜久久久久久久久试看| 韩国在线一区二区| 亚洲欧美视频一区| 欧美一区二区三区视频在线 | 成人av午夜电影| 无吗不卡中文字幕| 久久久久久免费网| 欧美亚洲动漫制服丝袜| 久久99精品国产| 亚洲综合男人的天堂| 久久综合国产精品| 欧美色图一区二区三区| 国产精品18久久久久久久久| 亚洲一区二区五区| 日本一区二区三区高清不卡| 欧美视频一区在线| www.欧美日韩国产在线| 免费成人在线观看视频| 亚洲精品一卡二卡| 久久天天做天天爱综合色| 欧美色爱综合网| 99在线精品观看| 国产中文一区二区三区| 偷拍日韩校园综合在线| 亚洲欧美激情插| 欧美激情中文不卡| 欧美mv日韩mv亚洲| 欧美高清视频一二三区| 日本精品一级二级| 不卡av在线网| 国产成+人+日韩+欧美+亚洲| 精品在线你懂的| 日韩精品三区四区| 亚洲午夜视频在线| 亚洲精选免费视频| 亚洲欧美日韩中文播放| 国产精品久久久久aaaa| 精品国产青草久久久久福利| 欧美一区二区视频在线观看2020 | 欧美挠脚心视频网站| 欧美唯美清纯偷拍| 精品福利一区二区三区| 精品视频在线视频| 欧洲av一区二区嗯嗯嗯啊| 99re成人精品视频| 91小视频免费观看| 91玉足脚交白嫩脚丫在线播放| 国产成人亚洲综合a∨婷婷图片| 久久99久久99精品免视看婷婷 | 久久99久国产精品黄毛片色诱| 婷婷成人激情在线网| 亚洲国产成人高清精品| 亚洲一级二级三级在线免费观看| 玉足女爽爽91| 亚洲第一福利一区| 日韩成人免费在线| 日韩精品三区四区| 久久99久国产精品黄毛片色诱| 久久成人麻豆午夜电影| 国产专区欧美精品| 国产传媒久久文化传媒| 成人性色生活片| 91蜜桃婷婷狠狠久久综合9色| 色综合天天综合给合国产| 91黄色在线观看| 制服.丝袜.亚洲.另类.中文| 欧美成人乱码一区二区三区| 久久久久久久久蜜桃| 国产精品理论片| 亚洲成人你懂的| 开心九九激情九九欧美日韩精美视频电影| 毛片不卡一区二区| 粉嫩高潮美女一区二区三区| 91免费观看视频| 91精品国模一区二区三区| 国产日产欧美一区二区视频| 亚洲日本青草视频在线怡红院| 亚洲福利一区二区三区| 老司机一区二区| 色综合久久久久综合99| 91精品婷婷国产综合久久| 国产偷国产偷精品高清尤物| 亚洲人成小说网站色在线| 蜜芽一区二区三区| 波多野结衣欧美| 欧美一区二区三区免费观看视频| 久久日一线二线三线suv| 樱花影视一区二区| 韩国视频一区二区| 欧美中文字幕一二三区视频| 日韩欧美一二三区| 亚洲一区国产视频| 丁香桃色午夜亚洲一区二区三区| 欧美日韩高清一区二区三区|