下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗2銀行家算法(2學時)一、實驗目的理解銀行家算法,掌握進程平安性檢查的方法及資源分配的方 法。二、實驗內容編寫程序實現(xiàn)銀行家算法,并驗證程序的正確性。三、實驗要求編制模擬銀行家算法的程序,并以下面給出的例子驗證所編寫的 程序的正確性。例子:某系統(tǒng)有A、B、C、D4類資源共5個進程(PO、Pl、P2、(1)現(xiàn)在系統(tǒng)是否處于平安狀態(tài)?(2)如果現(xiàn)在進程P1提出需求(0、4、2、0)個資源的請求,系統(tǒng)能否滿足它的請求?#include string.h#include iostream using namespace std;#define FALSE 0 #define TRUE 1#defi
2、ne W10#define R 20intM; 總進程數(shù)intN; 資源種類int ALL_RESOURCEW各種資源的數(shù)目總和int MAXWR;/7M個進程對N類資源最大資源需求int AVAILABLER;系統(tǒng)可用資源數(shù)intALLOCATIONWR;M個進程已經得SUN類資源的資源量int NEEDWR;/M個進程還需要N類資源的資源int RequestR;請求資源個數(shù)void shovvdata()函數(shù)showdata,輸出資源分配情況ALL:endl;資源AVALIABLE:endi;資源vvjvv”: AVAILABLEj;NEED:Hendl;資源資源r- 資源int i,j
3、; coutH coutM n;for (j=0;jN;j+)coutH nALL_RESOURCEj;coutendlendl;cout coutn n;for (j=0;jN;j+)cout coutendlendl;coutn coutn 2Hendl;for (i=0;iM;i+)for (i=0;iM;i+)進程 p,iM:1;/Icoutnfor(j=0;jN;j+)coutNEEDijn coutendl;ALLOCATION: endl;資源0”vv”資源l“vv”資源I coutendl; coutM cout2Hendl;for (i=0;iM;i+)coutH進程 p”v
4、vivv”: n;for(j=0;jN;j+)coutALLOCATIONijH M; coutendl;coutendl;Ivoid changdata(int k) 函數(shù)changdata,改變可用資源和已經拿到資源和還需要 的資源的值int j;for (j=O;jN;j+)AVAILABLEj=AVAILABLEj-Requestj;ALLOCATIONkj=ALLOCATIONkj+Requestj;NEEDkj=NEEDkj-Requestj;)void rstordata(int k) 函數(shù)rstordata,恢復可用資源和已經拿到資源和還需要的 資源的值int j;for (j
5、=O;jN;j+) AVAILABLEj=AVAILABLEj+Requestj; ALLOCATIONkj=ALLOCATIONkj-Requestj;NEEDkj=NEEDkj+Requestj;|int chkerr(int s) 函數(shù)chkerr,檢查是否由荃 int izjzk,l;int WORKWZFINISHW;for(k=0;kM;k+)FINISHk=false;|/7重置 FINISHfor(k=0;kN;k+)WORKk=AVAILABLEk;|for(i=0;i= NEEDij)1+;Iif(l=N&FINISHi=false)for(j=0;jN;j+)WORKj+
6、=ALLOCATIONij;IFINISHi=true;coutH ,pniMi=-l;else(for(i=0;iM;i+) if(FINISHi=FALSE)(coutendl;coutn系統(tǒng)進入不平安狀 態(tài),申請失??!*endl; system(pause);coutendl;return 1;|coutendl;cout分配成功vendl;system(npauseH);coutendl;return 0;void bank() 銀行家算法int i=0zj=0;char flag=Y;while(flag=,Y, | |flag=y)i=-l;while(i=M)(cout-申請資源
7、的進程號:“;coutHpn;cini;if(i=M)coutn輸入的進程號不存在,重新輸A!,endl;coutn請輸入進程Pvvivv”申請的資源數(shù):endl;for (j=O;jNEEDiR) 假設請求的資源數(shù)大于進程還需要i類資源的資 源*jcout請求資源大于進程所需資源!”vAVAILABLEj) 假設請求的資源數(shù)大于可用資源數(shù)IcoutH申請資源大于可用資源!” vvendl;cout申請不合理,出錯!請重新選擇!Vendl;system(npausen);flag=N;break;if(flag=,Y, | | flag=,y)changdata(i);調用changdata函
8、數(shù),改變資源數(shù)if(chkerr)假設系統(tǒng)平安rstordata(i);調用rstordata函數(shù),恢復資源數(shù)showdata(); /出資源分配情況Ielse假設系統(tǒng)不平安showdata();幃出資源分配情況else 假設 flag=N | | flag=nshowdata();coutendl;coutn繼續(xù)輸入Y,退出輸入任意鍵:*;cinflag;void main。主函數(shù)int i=Ozj=Ozp;COUtVV”輸入總進程數(shù):;cinM;COUtVV”輸入總資源種類嚴;cinN;COUtVV請輸入總資源數(shù):“;for(i=0;iN;i+)cinALL_RESOURCEi;coutv
9、v”依次輸入各進程所需要的最大資源數(shù):l:(max):”vvendl;for (i=0;iM;i+)for (j=O;jALL_RESOURCEj)COUtVV”占有資源超過了聲明的該資源總數(shù),請重新輸入”;)while (MAXijALL_RESOURCEj);cout依次輸入 allocation:endl;for (i=0;iM;i+)Ifor (j=O;jMAXij)coutvv”占有資源超過了聲明的最大資源,請重新輸入”;Jwhile (ALLOCATIONijMAXij);初始化資源數(shù)for (j=O;jN;j+)| p=ALL_RESOURCEj;for (i=0;iM;i+)(p=pALLOCATI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑公司司機招聘合同
- 二手房買賣助手經紀合同
- 城市社會福利設施建設管理辦法
- 汽車銷售區(qū)道路維修臨時協(xié)議
- 學校教育保潔員招聘合同
- 證券公司合同
- 2024人工智能在金融領域應用合同
- 酒店股權投資協(xié)議
- 礦山設備租賃解除協(xié)議書
- 銷售人員培訓后心得(13篇)
- 江蘇省南通市2024-2025學年七年級上學期期中英語試卷(含答案解析)
- 2022年甘肅省公務員錄用考試《行測》真題及答案解析
- 排球正面上手發(fā)球課件
- 稅收的經濟效應課件
- GB/T 16915.1-2024家用和類似用途固定式電氣裝置的開關第1部分:通用要求
- 2025屆高考語文一輪復習:小說物象含義及作用
- 湖北省襄陽市2023-2024學年六年級上學期英語期中試卷(含答案)
- 山東省濰坊市2023-2024學年度高二上學期期中考試化學試題(帶答案)
- 2025年考研政治政治理論時政熱點知識測試題庫及答案(共三套)
- 大學生生涯發(fā)展展示 (修改)
評論
0/150
提交評論