




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include<iostream>#include<string.h>#include<stdio.h>#define false 0#define true 1using namespace std;int max100100=0;/ 各進程所需各類 資源的最大需求int avaliable100=0;/系統(tǒng)可用資源char name100=0;/ 資源的名稱int allocation100100=0;/系統(tǒng)已安排 資源int need100100=0;/ 仍需要資源int request100=0;/ 懇求資源向量int temp100=0;/ 存放
2、安全序列int work100=0;/存放系 統(tǒng)可供應(yīng) 資源int m=100;/ 作業(yè)的最大數(shù) 為 100 int n=100;/ 資源的最大數(shù) 為 100 void showdata/ 顯示資源矩陣int i,j;cout<<"系統(tǒng)目前可用的 資源avaliable:"<<endl;fori=0;i<n;i+ cout<<namei<<" " cout<<endl;for j=0;j<n;j+cout<<avaliablej<<" "/
3、輸出安排 資源cout<<endl;cout<<"maxallocationneed"<<endl;cout<<"進程名" forj=0;j<3;j+fori=0;i<n;i+cout<<namei<<" " cout<<""cout<<endl; fori=0;i<m;i+ cout<<" "<<i<<"" forj=0;j&
4、lt;n;j+ cout<<maxij<<" " cout<<"" forj=0;j<n;j+cout<<allocationij<<" " cout<<""forj=0;j<n;j+ cout<<needij<<" " cout<<endl;int changdataint i/進行資源安排int j;for j=0;j<m;j+ avaliablej=avaliabl
5、ej-requestj;allocationij=allocationij+requestj; needij=needij-requestj;return 1;int safe/安全性算法int i,k=0,m,apply,finish100=0; int j;int flag=0;work0=avaliable0;work1=avaliable1; work2=avaliable2; fori=0;i<m;i+apply=0; forj=0;j<n;j+if finishi=false&&needij<=workj apply+;ifapply=n form
6、=0;m<n;m+workm=workm+allocationim;/變安排數(shù)finishi=true; tempk=i;i=-1;k+;flag+;fori=0;i<m;i+ iffinishi=falsecout<<"系統(tǒng)擔(dān)心全 "<<endl;/不勝利系 統(tǒng)擔(dān)心全return -1;cout<<"系統(tǒng)是安全的 ."<<endl;/假如安全, 輸出勝利cout<<"安排的序列 :"fori=0;i<m;i+/輸出運行 進程數(shù)組cout<<te
7、mpi; ifi<m-1 cout<<"->"cout<<endl; return 0;void share/利用銀行家算法 對申請資源對進行判定char ch; int i=0,j=0; ch='y'cout<<" 請輸入要求安排的 資源進程號0-"<<m-1<<":"cin>>i;/輸入須申請的資源號cout<<" 請輸入進程 "<<i<<"申請的資源:"&
8、lt;<endl; forj=0;j<n;j+cout<<namej<<":"cin>>requestj;/輸入需要申 請的資源for j=0;j<n;j+ifrequestj>needij/判定申 請是否大于需求,如大于 就出錯cout<<"進程 "<<i<<"申請的資源大于它需要的 資源"cout<<"安排不合理,不予安排!"<<endl; ch='n'break;else i
9、frequestj>avaliablej/判定申 請是否大于當(dāng)前 資源,如大于 就/出錯cout<<"進程"<<i<<"申請的資源大于系 統(tǒng)現(xiàn)在可利用的 資源"cout<<"安排出 錯,不予安排 ."<<endl; ch='n'break;ifch='y' changdatai;/依據(jù)進程需求量 變換資 源showdata;/依據(jù)進程需求量 顯示變換后的資源safe;/依據(jù)進程需求量 進行銀行家算法判定void addresources/
10、添加資源int n,flag;cout<<" 請輸入需要添加 資源種類的數(shù)量 :" cin>>n;flag=n;n=n+n;forint i=0;i<n;i+cout<<"名稱:" cin>>nameflag;cout<<"數(shù)量:" cin>>avaliableflag+;showdata; safe;void delresources/刪除資源char ming; int i,flag=1;cout<<" 請輸入需要 刪除的資源名稱:
11、 " docin>>ming; fori=0;i<n;i+ifming=namei flag=0;break;ifi=ncout<<"該資源名稱不存在, 請重新輸入: "whileflag;forint j=i;j<n-1;j+namej=namej+1; avaliablej=avaliablej+1; n=n-1;showdata;safe;void changeresources/修改資源函數(shù)cout<<" 系統(tǒng)目前可用的 資源avaliable:"<<endl; forint
12、i=0;i<n;i+ cout<<namei<<":"<<avaliablei<<endl;cout<<" 輸入系統(tǒng)可用資源avaliable:"<<endl; cin>>avaliable0>>avaliable1>>avaliable2;cout<<" 經(jīng)修改后的系 統(tǒng)可用資源為"<<endl; for int k=0;k<n;k+cout<<namek<<&quo
13、t;:"<<avaliablek<<endl;showdata; safe;void addprocess/添加作 業(yè)int flag=m;m=m+1;cout<<" 請輸入該作業(yè)的最打需求量 max"<<endl; forint i=0;i<n;i+cout<<namei<<":"cin>>maxflagi;needflagi=maxflagi-allocationflagi;showdata; safe;int main/主函數(shù)int i,j,numb
14、er,choice,m,n,flag; char ming;cout<<"*資源治理系 統(tǒng)的設(shè)計與實現(xiàn)*"<<endl;cout<<" 請第一輸入系統(tǒng)可供資源種類的數(shù)量 :" cin>>n;n=n;fori=0;i<n;i+cout<<"資源"<<i+1<<" 的名稱 :" cin>>ming;namei=ming;cout<<"資源的數(shù)量 :" cin>>number;
15、 avaliablei=number;cout<<endl;cout<<" 請輸入作業(yè)的數(shù)量 :" cin>>m;m=m;cout<<" 請輸入各進程的最大需求量 "<<m<<"*"<<n<<" 矩陣max:"<<endl; fori=0;i<m;i+forj=0;j<n;j+cin>>maxij; doflag=0;cout<<"請輸入各進程已 經(jīng)申請的資源量&
16、quot;<<m<<"*"<<n<<" 矩陣allocation:"<<endl; fori=0;i<m;i+forj=0;j<n;j+cin>>allocationij; ifallocationij>maxij flag=1;needij=maxij-allocationij;ifflag cout<<"申請的資源大于最大需求量, 請重新輸入.n"whileflag;showdata;/顯示各種 資源 safe;/用銀行家算法判定
17、系 統(tǒng)是否安全 whilechoicecout<<"*銀行家算法演示 *"<<endl;cout<<"1:增加資源"<<endl;cout<<"2:刪除資源"<<endl;cout<<"3:修改資源"<<endl;cout<<"4:安排資源"<<endl;cout<<"5:增加作 業(yè)"<<endl;cout<<"0:離開"<<endl;cout<<"*"<<endl; cout<<"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年志遠小學(xué)考試題及答案
- 2025年河北pcr考試題及答案2022
- 2025年單招各科模擬試題及答案
- 2025年工程數(shù)學(xué)段考試題及答案
- 2025年遼寧省理綜合試題及答案
- 2025年長方形測試題及答案
- 考驗大家眼力測試題及答案
- 2025年文德英語面試試題及答案
- 2025年拆遷專員考試試題及答案
- 2025年眼鏡美學(xué)題考試題及答案
- 華中師大版七年級心理 2走近老師 課件(共15張PPT)
- 裝配式建筑疊合板安裝技術(shù)交底
- 2022年HTD-8M同步帶輪尺寸表
- 皮帶滾筒數(shù)據(jù)標(biāo)準(zhǔn)
- 腳手架操作平臺計算書
- 內(nèi)科學(xué)第八版循環(huán)系統(tǒng)教學(xué)大綱
- 煤礦供電系統(tǒng)及供電安全講座方案課件
- 綠色建筑及材料分析及案列
- 實用中西醫(yī)結(jié)合診斷治療學(xué)
- 幕墻工程技術(shù)標(biāo)范本
- 《施工方案封面》
評論
0/150
提交評論