版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)名稱(chēng): 銀行家算法 姓 名: 楊秀龍 學(xué) 號(hào): 專(zhuān)業(yè)班級(jí): 創(chuàng)新實(shí)驗(yàn)班111 指導(dǎo)老師: 霍林 實(shí)驗(yàn)題目銀行家算法實(shí)驗(yàn)?zāi)康母顚拥牧私忏y行家算法是如何避免死鎖的設(shè)計(jì)思想銀行家算法是根據(jù)進(jìn)程的請(qǐng)求,假設(shè)在已分配給該進(jìn)程請(qǐng)求的資源后,進(jìn)行安全性算法,如果都能滿(mǎn)足其他進(jìn)程的請(qǐng)求,則滿(mǎn)足該進(jìn)程的請(qǐng)求,否則掛起該進(jìn)程的請(qǐng)求。假設(shè)在一個(gè)系統(tǒng)中,知道相應(yīng)的進(jìn)程的狀態(tài)(最大需求、已占用的資源量、還需要的資源量和可利用的資源數(shù)),某個(gè)進(jìn)程發(fā)出請(qǐng)求,在請(qǐng)求滿(mǎn)足兩大請(qǐng)求(小于還需要的資源并小于可利用資源數(shù))時(shí),分配給該進(jìn)程相應(yīng)的資源,再進(jìn)行安全檢測(cè),在確認(rèn)安全的情況下,才把資源真正分配給該進(jìn)程,否則終止請(qǐng)求!主
2、要數(shù)據(jù)結(jié)構(gòu)根據(jù)算法的相應(yīng)需求,需要定義int maxMM;int allocationMM;int needMM;int availableM;int workM;等數(shù)組開(kāi)始結(jié)束輸入總進(jìn)程數(shù)輸入資源數(shù)輸入Max矩陣輸入Allocation矩陣是否添加進(jìn)程請(qǐng)求輸入進(jìn)程號(hào)和請(qǐng)求資源否是流程圖運(yùn)行結(jié)果圖(1)分配進(jìn)程的相應(yīng)狀態(tài)圖(2)請(qǐng)求和請(qǐng)求完全部資源后釋放資源圖(3)繼續(xù)請(qǐng)求并釋放其他進(jìn)程圖(2)所有進(jìn)程請(qǐng)求完成后系統(tǒng)資源還原附錄原代碼如下:# include stdio.h # define M 50int maxMM;int allocationMM;int needMM;int avail
3、ableM; int i, j, n, m, anquan,x=0;/*7 5 3 0 1 0 7 4 3 3 3 2 3 2 2 2 0 0 1 2 2 9 0 2 3 0 2 6 0 0 2 2 2 2 1 1 0 1 1 4 3 3 0 0 2 4 3 1*/ main() void check(); int p,q,control; int reqM,allocation1MM,need1MM,available1M; printf(輸入進(jìn)程總數(shù):); scanf(%d, &n); printf(輸入資源種類(lèi)數(shù)量:); scanf(%d, &m); printf(輸入需求矩陣Max:n
4、); for(i=0;in; i+) for(j=0;jm; j+) scanf(%2d,&maxij); printf(輸入已分配矩陣Allocation:n); for(i=0;in; i+) for(j=0;jm; j+) scanf(%d, &allocationij); for (i=0;in; i+) for(j=0;jm; j+) needij=maxij-allocationij; printf(輸入資源的系統(tǒng)初始值:n); for (j=0;jm;j+) scanf(%d, &availablej); for (j=0;jm;j+)for(i=0;in;i+)availabl
5、ej=availablej-allocationij; check(); if (anquan=1) /如果已知的狀態(tài)安全則執(zhí)行以下代碼 for(control=0;control+) p=0,q=0; printf(輸入請(qǐng)求的進(jìn)程號(hào): ); scanf(%d, &i); printf(輸入該進(jìn)程的請(qǐng)求資源數(shù)組:); for(j=0;jm; j+) scanf(%d,&reqj); for(j=0;jneedij) p=1; if(p) printf(請(qǐng)求資源大于該進(jìn)程還需要的資源!n); else for(j=0;javailablej)/判斷請(qǐng)求是否大于可用資源 q=1; if(q) pr
6、intf(可用資源不能滿(mǎn)足請(qǐng)求!n); else for(j=0;jm; j+) /滿(mǎn)足兩大條件 available1j=availablej; /保持資源的當(dāng)前 allocation1ij=allocationij; need1ij=needij; availablej=availablej-reqj; /嘗試把資源分配給進(jìn)程 allocationij=allocationij+reqj; needij=needij-reqj; if(needij=0)x=x+1; /當(dāng)進(jìn)程滿(mǎn)足時(shí)釋放資源 if(x=m) for(j=0;jm;j+) availablej=availablej+alloca
7、tionij; allocationij=0; available1j=availablej; x-; else x=0; check(); if(anquan=0) for (j=0;jm; j+) availablej=available1j; /還原分配前的狀態(tài) allocationij=allocation1ij; needij=need1ij; printf(執(zhí)行該進(jìn)程不安全!返回繼續(xù)操作。n); printf(是否繼續(xù)請(qǐng)求?n); void check() /安全性算法 int k, f, no=0; int workM,aM; char finishM; anquan=1; fo
8、r(i=0;in; i+) finishi=F; for(j=0;jm; j+) workj=availablej; k=n; do for (i=0;in; i+) if (finishi=F) f=1; for (j=0;jworkj) f=0; if (f=1) /找到還沒(méi)完成的且需求數(shù)小于可提供進(jìn)程繼續(xù)運(yùn)行的 finishi=T; ano+=i; /記錄安全序列號(hào) for (j=0;j0); f=1; for (i=0;in; i+) /判斷有沒(méi)有進(jìn)程沒(méi)完成 if (finishi=F) f=0; break; if (f=0) printf(不安全狀態(tài)!n); anquan=0; e
9、lse printf(處于安全狀態(tài).); printf(安全序列號(hào):); for (i=0;in;i+) printf (%d ,ai); printf(n); printf(進(jìn)程); printf( ); printf( Max ); printf( ); printf(allocation); printf( ); printf(need); printf( ); printf(available); printf(n); for (i=0;in; i+) printf(%2d,i); printf( ); for(j=0;jm; j+) printf(%2d,maxij); printf( ); for(j=0;jm
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于加強(qiáng)企業(yè)資產(chǎn)管理的思考
- 新政府會(huì)計(jì)制度下科學(xué)事業(yè)單位科研項(xiàng)目經(jīng)費(fèi)核算研究
- 春 朱自清 課件
- 單詞連連看答題闖關(guān)游戲課堂互動(dòng)課件1
- 53模擬試卷初中數(shù)學(xué)八年級(jí)下冊(cè)09專(zhuān)項(xiàng)素養(yǎng)綜合全練(九)
- 協(xié)商民主課件教學(xué)課件
- 中國(guó)礦山生態(tài)修復(fù)市場(chǎng)深度剖析與投資戰(zhàn)略研究報(bào)告2024-2030年
- 物理學(xué)家伽利略課件
- 中國(guó)戶(hù)外媒體廣告行業(yè)發(fā)展規(guī)模與投資前景趨勢(shì)預(yù)測(cè)報(bào)告2024-2030年
- 八上物理第一次月考卷(參考答案)(北師大版2024)
- 部編版五年級(jí)上冊(cè)第二單元習(xí)作:“漫畫(huà)”老師 課件
- (說(shuō)課稿)分子和原子(第二課時(shí))
- 第1課 神奇的小畫(huà)冊(cè)(說(shuō)課稿)湘美版(2012)美術(shù)二年級(jí)上冊(cè)
- 金色的草地說(shuō)課稿部編版(3篇)
- 政府投資項(xiàng)目審計(jì)
- 分布式光伏電站發(fā)電量損失補(bǔ)償保險(xiǎn)條款(2022版)
- 汽車(chē)后備箱創(chuàng)意市集活動(dòng)策劃方案(樂(lè)創(chuàng)集市 潮玩車(chē)尾主題)
- 中藥濕敷技術(shù)
- 山東足球場(chǎng)人造草工程施工合同
- 腫瘤患者精細(xì)化營(yíng)養(yǎng)管理理論考試試題及答案
- 學(xué)校食堂食品安全信用檔案模版
評(píng)論
0/150
提交評(píng)論