版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、20152016學(xué)年 第二學(xué)期專(zhuān) 業(yè) 班 級(jí) 學(xué) 號(hào) 姓 名 日 期 實(shí)驗(yàn)題 目實(shí)驗(yàn)六 銀行家算法實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、 了解掌握銀行家算法;2、 學(xué)會(huì)模擬實(shí)現(xiàn)資源分配,同時(shí)按要求編寫(xiě)和調(diào)試一個(gè)系統(tǒng)分配資源的簡(jiǎn)單模擬程序;3、 觀察死鎖產(chǎn)生的條件,并使用適當(dāng)?shù)乃惴?,有效的防止和避免死鎖的發(fā)生。實(shí)驗(yàn)理論基礎(chǔ)設(shè)計(jì)要求:編制銀行家算法通用程序,并檢測(cè)所給狀態(tài)的系統(tǒng)安全性。 1.銀行家算法: 設(shè)進(jìn)程i提出請(qǐng)求Requestn,則銀行家算法按如下規(guī)則進(jìn)行判斷。 (1)如果RequestnNeedi,n,則報(bào)錯(cuò)返回。 (2)如果RequestnAvailable,則進(jìn)程i進(jìn)入等待資源狀態(tài),返回。 (3)假設(shè)進(jìn)程
2、i的申請(qǐng)已獲批準(zhǔn),于是修改系統(tǒng)狀態(tài): Available=Available- Request Allocation=Allocation +Request Need=Need-Request(4)系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險(xiǎn)性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。 2.安全性檢查 (1)設(shè)置兩個(gè)工作向量Work=Available;FinishM=False(2)從進(jìn)程集合中找到一個(gè)滿足下述條件的進(jìn)程, Finish i=False Need=Work 如找到,執(zhí)行(3);否則,執(zhí)行(4) (3)設(shè)進(jìn)程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。 Work=Work+Al
3、location Finish=True GO TO 2 (4)如所有的進(jìn)程FinishM=true,則表示安全;否則系統(tǒng)不安全。實(shí)驗(yàn)內(nèi)容和步驟1、本試驗(yàn)設(shè)計(jì)的目的是通過(guò)編寫(xiě)和調(diào)試一個(gè)系統(tǒng)動(dòng)態(tài)分配資源的簡(jiǎn)單模擬程序,觀察死鎖產(chǎn)生的條件,并采用適當(dāng)?shù)乃惴?,有效地防止和避免死鎖地發(fā)生。要求如下:(1)模擬一個(gè)銀行家算法;(2)初始化時(shí)讓系統(tǒng)擁有一定的資源;(3)用鍵盤(pán)輸入的方式申請(qǐng)資源;(4)如果預(yù)分配后,系統(tǒng)處于安全狀態(tài),則修改系統(tǒng)的資源分配情況;(5)如果預(yù)分配后,系統(tǒng)處于不安全狀態(tài),則提示不能滿足請(qǐng)求。 以下提供了部分該實(shí)例的源代碼,要求同學(xué)們根據(jù)理論基礎(chǔ)部分內(nèi)容分析該源代碼,并將缺失的程序
4、代碼補(bǔ)充完整,然后調(diào)試這段程序,最終按要求給出相應(yīng)的結(jié)論。#include #include #include #include #define M 3 /資源種類(lèi)m種#define N 4 /進(jìn)程個(gè)數(shù)nint need103;/進(jìn)程還需資源矩陣int max103;/進(jìn)程最大需求矩陣int allocation103;/已分配資源矩陣 int available3; /可用資源向量int work3;/可用資源向量int finish10,finish110; /記錄進(jìn)程申請(qǐng)的資源是否能分配int path10=0,1,2,3,4,5,6,7,8,9;/記錄安全序列int is_save;/
5、是否產(chǎn)生安全序列int mark10; /記錄某進(jìn)程是否已分配資源void display(int *a,int n) /顯示一維數(shù)組 int i; for(i=0;in;i+) printf(%3d,ai); void disp( ) /顯示資源列表 int i; printf(Nnumbert Maxtt needtt allocationt avaliblen); for(i=0;iN;i+) printf(p%dt,i);/-分別顯示P0,P1,P2的Max,Need,Allocation,Avalible display(maxi,M); printf(t); display(nee
6、di,M); printf(t); display(allocationi,M); printf(t); if(i=0) display(available,M); printf(n); void init( ) int i,j; srand(time(NULL); for(i=0;iM;i+) for(j=0;jN;j+) allocationij=rand()%10; needij=rand()%10; maxij=allocationij+needij; for(i=0;iN;i+) availablei=rand()%12; disp(); is_save=0;void showMen
7、u( ) puts(n*); puts(*0.初始化數(shù)據(jù) 1.安全性算法 2.銀行家算法 3.退出*); puts(*);int safe()/檢查安全序列 int i,j,k=1; / k用來(lái)結(jié)束安全序列的查找 int flag=1; / flag = 0表示當(dāng)前可用資源 進(jìn)程申請(qǐng)資源數(shù) int r=0,r1=0; / 記錄所需資源能被滿足的進(jìn)程數(shù); for( j = 0; j M; j+) /初始化work workj = availablej; printf(現(xiàn)在進(jìn)行安全性檢查.n); for( i = 0; i =4) printf(-找到安全序列-n);for(i=0;i,pathi
8、); else printf(p%dn,pathi); return 1; else printf(進(jìn)行安全性檢查后.n); printf(當(dāng)前狀態(tài)不安全!n); return 0; void print_sav_seq()int i,j;printf(安全序列如下:);for( j = 0; j :);printf(p%d, pathj);puts();puts(*);puts(* Work Need Allocation Work+Allocation Finish *);puts(* A B C A B C A B C A B C *);for( j = 0; j M; j+)workj
9、 = availablej;for( j = 0; j %d;B-%d;C-%dnnn,available0, available1, available2 );void banker()int oper, i, j, flag1 = 0, flag2 = 0; /用來(lái)比較requestj needij 和requestj availablej int request3;while(1)flag1 = flag2 = 0;printf(請(qǐng)輸入要操作的進(jìn)程號(hào):);scanf(%d, &i);if(iN|i0) printf(你輸入的進(jìn)程號(hào)不存在!); break;printf(請(qǐng)輸入各類(lèi)資源的請(qǐng)
10、求數(shù):);scanf(%d %d %d, &request0, &request1, &request2);/請(qǐng)?jiān)诖颂幉迦脬y行家算法實(shí)現(xiàn)的代碼!puts( 1.繼續(xù)操作 2.退出);scanf(%d, &oper);if(oper = 2)break;int main()int oper;while(1)showMenu();printf(請(qǐng)選擇接下來(lái)的操作:);scanf(%d, &oper);switch( oper )case 0:init();break;case 1:if(safe()=1) is_save =1;if(is_save = 1)print_sav_seq();elseputs(無(wú)法找到安全序列,請(qǐng)重新生成數(shù)據(jù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司綜合管理部工作總結(jié)及2025年工作計(jì)劃
- 公司部門(mén)人員工作計(jì)劃范文書(shū)
- 2025幼兒園學(xué)期工作計(jì)劃表
- 一:主席團(tuán)工作計(jì)劃
- 2025年秋季幼兒園小班工作計(jì)劃
- 人事年度工作計(jì)劃范文
- 學(xué)校班集體工作計(jì)劃報(bào)告寫(xiě)作
- 幼兒園春季學(xué)期大班工作計(jì)劃
- 《多變的價(jià)格》課件
- 《型數(shù)控系統(tǒng)簡(jiǎn)介》課件
- 《物聯(lián)網(wǎng)工程導(dǎo)論》課件 項(xiàng)目5 智慧小區(qū)系統(tǒng)集成架構(gòu)設(shè)計(jì)(6學(xué)時(shí))
- 2024高考政治真題-哲學(xué)-匯集(解析版)
- 急診與災(zāi)難醫(yī)學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- 消化內(nèi)科健康教育手冊(cè)
- 學(xué)校關(guān)于意識(shí)形態(tài)工作總結(jié)
- 醫(yī)院保安服務(wù)應(yīng)急預(yù)案
- 幼兒園大班師德師風(fēng)案例及分析
- 2023-2024年《個(gè)人墊資合同樣本范本模板》
- 項(xiàng)目工程師個(gè)人工作總結(jié)
- 第四單元 美洲樂(lè)聲-《紅河谷》課件 2023-2024學(xué)年人音版初中音樂(lè)七年級(jí)下冊(cè)
- 學(xué)習(xí)任務(wù)群視域下小學(xué)語(yǔ)文整本書(shū)閱讀教學(xué)策略
評(píng)論
0/150
提交評(píng)論