




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
操作系統(tǒng)實驗二:
銀行家算法實驗銀行家算法的數(shù)據(jù)結(jié)構(gòu)◆可用資源向量Available:長度為n的數(shù)組表示系統(tǒng)中n類資源的當前可用數(shù)目。如果Available[j]=k,表示系統(tǒng)中現(xiàn)有Rj類資源為k個?!糇畲笮枨缶仃嘙ax:m×n矩陣定義m個進程對n類資源的最大需求量。如Max[i,j]=k,表示進程Pi運行期間最多需求Rj資源的數(shù)目為k個?!粢逊峙滟Y源矩陣Allocation:m×n矩陣定義了每個進程現(xiàn)在已分配到的各類資源的實際數(shù)目。如果Allocation[i,j]=k,表示進程Pi當前分到k個Rj類資源?!粜枨缶仃嘚eed:m×n矩陣表示每個進程還需要的各類資源的數(shù)目。如果Need[i,j]=k,表示進程Pi尚需k個Rj類資源才能完成其任務(wù)。很顯然,Need[i,j]=Max[i,j]-Allocation[i,j],因而,這些數(shù)據(jù)結(jié)構(gòu)的大小和值會隨著時間而改變。淮海工學(xué)院計算機科學(xué)系銀行家算法(資源分配算法)設(shè)Requesti表示進程Pi的資源申請向量。如Requesti[j]=k,表示進程Pi動態(tài)申請k個Rj類資源。當進程Pi申請資源時,就執(zhí)行下列動作(試探性分配):①若Requesti[j]>Need[i,j],產(chǎn)生出錯條件,因為進程Pi對資源的請求量已超過其說明的最大數(shù)量;否則,轉(zhuǎn)到步驟②。②如果Requesti[j]>Available[j],則進程Pi必須等待,這是因為系統(tǒng)現(xiàn)在沒有可用的資源;否則,轉(zhuǎn)到步驟③。③如果系統(tǒng)可以給進程Pi分配所請求的資源,則應(yīng)對有關(guān)數(shù)據(jù)結(jié)構(gòu)進行修改:Available[j]=Available[j]-Requesti[j];(j=1,2,……,n)Allocation[i,j]=Allocation[i,j]
+Requesti[j];(i=1,2,……,m)Need[i,j]=Need[i,j]-Requesti[j];④系統(tǒng)執(zhí)行安全性檢查,查看此時系統(tǒng)狀態(tài)是否安全。如果安全,就給進程Pi
實際分配資源;否則,即系統(tǒng)是不安全的,則Pi等待,作廢本次試探性分配,并且把資源分配狀態(tài)恢復(fù)成③之前的情況?;春9W(xué)院計算機科學(xué)系安全檢查算法設(shè)置兩個向量:工作向量Work:表示系統(tǒng)可提供給進程繼續(xù)運行所需要的各類資源數(shù)目,長度為n;進程完成標志向量Finish:長度為m,表示各個進程是否能夠得到足夠的資源并運行完成。兩個向量初始化:Work=Available,F(xiàn)inish[i]=false(i=1,2,…m)。從進程集合中搜尋滿足下列條件的進程(找安全進程序列):Finish[i]==false且Need[i,j]≤Work[j]。 如果找到這樣的進程,執(zhí)行③;否則,則轉(zhuǎn)向步驟④。修改數(shù)據(jù)值:Work[j]=Work[j]+Allocation[i,j](進程Pi釋放所占的全部資源);Finish[i]=true; 返回步驟②;安全與不安全判定:如果所有進程的Finish[i]==true都成立(找著安全序列),則系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)?;春9W(xué)院計算機科學(xué)系銀行家算法主要程序段1、以書上用例初始化數(shù)據(jù)結(jié)構(gòu)#defineM5#defineN3intavailable[N]={3,3,2};intmax[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};intallocation[M][N]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};intneed[M][N],p[M];銀行家算法主要程序段1、以書上用例初始化數(shù)據(jù)結(jié)構(gòu)#defineM5//總進程數(shù)#defineN3//總資源數(shù)//M個進程對N類資源最大資源需求量intMAX[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};//系統(tǒng)可用資源數(shù)intAVAILABLE[N]={10,5,7};//M個進程已經(jīng)得到N類資源的資源量intALLOCATION[M][N]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};//M個進程還需要N類資源的資源量intNEED[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};intRequest[N]={0,0,0};銀行家算法主要程序段2、現(xiàn)實資源分配情況voiddisplaydata(){inti,j;cout<<"系統(tǒng)可用的資源數(shù)為:"<<endl<<endl;for(j=0;j<N;j++)cout<<"資源"<<j<<":"<<AVAILABLE[j];cout<<endl;cout<<"各進程還需要的資源量:"<<endl<<endl;for(i=0;i<M;i++){cout<<"進程"<<i<<":";for(j=0;j<N;j++)cout<<"資源"<<j<<":"<<NEED[i][j];cout<<endl;}cout<<endl;cout<<"各進程已經(jīng)得到的資源量:"<<endl<<endl;for(i=0;i<M;i++){cout<<"進程"<<i<<":";for(j=0;j<N;j++)cout<<"資源"<<j<<":"<<ALLOCATION[i][j];cout<<endl;}};銀行家算法主要程序段3、進程分配資源的數(shù)據(jù)更新voidchangedata(intk)//為進程k分配請求的資源數(shù)量{intj;for(j=0;j<N;j++){AVAILABLE[j]=AVAILABLE[j]-Request[j];ALLOCATION[k][j]=ALLOCATION[k][j]+Request[j];NEED[k][j]=NEED[k][j]-Request[j];}};銀行家算法主要程序段4、進程分配資源的數(shù)據(jù)更新voidrestoredata(intk)//恢復(fù)已分配的數(shù)據(jù)為分配前狀態(tài)
{
intj;
for(j=0;j<N;j++)
{
AVAILABLE[j]=AVAILABLE[j]+Request[j];
ALLOCATION[k][j]=ALLOCATION[k][j]-Request[j];
NEED[k][j]=NEED[k][j]+Request[j];
}};
銀行法家算威法主像要程強序段5、安航全檢碼查過牌程中零判斷少進程揪需求帥資源農(nóng)是否扇大于彼現(xiàn)有組資源in盡tco造mp揉ar投e(醉in徑tne輔ed沖[垃],in投two建rk鹽[歡])塑{in網(wǎng)tj;fo毫r(灶j=0物;j鄙<N;滾j++晃)掘{if千(n乏ee輔d[紫j]>wo虜rk箱[j])婆{話r靠et幸ur勇n邊FA傻LS姓E;趟}碗}嘆r施et歸ur帆n編TR產(chǎn)UE價;紐奉}6、安昌全檢飽查程錘序段in繩tis菜Se飯cu彎ri倘ty炸(i債ntav號ai囑la亡bl束e[蝦],岡in無tne勇ed勿[]罷[N避],視in淚tal純lo艇ca尖ti省on樸[]蕉[N])罷{in沉ti,芹j,砍k=0堵,f迅la紛g,公fi婦ni交sh澆[M若],看wo恥rk斗[N略];fo御r(榮i=0侵;i咱<M;響i++哨)評{fi誰ni芒sh匯[i]=皺FA幅LS嗎E;渴}fo涼r(叫j=0挨;j捎<N;禿j++宣)色{wo范rk牧[j]=av豆ai增la蹤蝶bl描e[螞j];齒}wh窄il數(shù)e(藍TR刑UE){//尋找御安全岸進程疼序列fl貪ag斑=F活A(yù)L鬼SE麗;fo喇r(印i=0負;i斑<M;揉i++貧){迫//每一艇趟循損環(huán)將溝找到掛當前取可分削配資唐源的買進程槍,并督回收蝕其已鉤分配垮資源if膏(f劇in闖is慣h[毅i]=栗=FA蘋LS抱E&璃&c奸om棒pa紗re鎖(n撓ee佳d[輕i]悔,w常or血k)=拔=T因RU漿E){fo鎮(zhèn)r(槍j=0同;j綠<N;哀j++茂)wo備rk厭[j]+飽=al尚l(wèi)o破ca群ti耀on票[i枝][幟j];fi萍ni版sh描[i]=由TR暫UE羨;p[李k++先]=例i;翼fl鞋ag授=T陳RU坡E;消br疫ea挎k;蹈/民/結(jié)束FO蝕R循環(huán)法,表吩示W(wǎng)O扔RK中資東源滿伙足某海一進微程的湯資源餃需求購,并蜂執(zhí)行wh樹il反e}}if恐(f晃la咬g==斬FA咱LS狀E)嘴{她//只要氧有一舊個進偵程全斷部資仰源得持到滿想足,若則繼狠續(xù)wh簽il氏e(醉TR紐奉UE)循環(huán)fo鎖r(痰i=0士;i悟<M;妨i++昨)體{if吃(f視in樂is件h[昏i]=串=F史
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國血管內(nèi)皮生長因子市場分析及競爭策略研究報告
- 2025至2030年中國復(fù)方氨基比林針市場分析及競爭策略研究報告
- 2025至2030年中國單杠毛巾架市場調(diào)查研究報告
- 2025━2030年復(fù)方蛇脂軟膏行業(yè)深度研究報告
- 2025━2030年兩路電動舵機驅(qū)動電路行業(yè)深度研究報告
- 2025-2035年全球及中國表面底漆行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展前景研究報告
- 2025-2035年全球及中國烴類制冷劑行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展前景研究報告
- 2025-2035年全球及中國抗青光眼藥物行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展前景研究報告
- 2024年中國銅版不干膠市場調(diào)查研究報告
- 人教A版高中數(shù)學(xué)選擇性必修三-8.2第1課時-一元線性回歸模型及參數(shù)的最小二乘估計-導(dǎo)學(xué)案【含答案】
- 2025新 公司法知識競賽題庫與參考答案
- 2025年中國移動通信集團貴州限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 《苗圃生產(chǎn)與管理》教案-第三章 園林植物的播種育苗
- 大學(xué)生美甲創(chuàng)業(yè)項目路演
- 自控力-電子書
- 2025年中國中煤能源集團有限公司招聘筆試參考題庫含答案解析
- 《肺結(jié)節(jié)影像診斷》課件
- 2024年濰坊工程職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 山東黃河河務(wù)局公開招考2025高校畢業(yè)生高頻重點提升(共500題)附帶答案詳解
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 產(chǎn)科VTE的預(yù)防和護理
評論
0/150
提交評論