




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、20152016學(xué)年 第二學(xué)期專 業(yè) 班 級 學(xué) 號 姓 名 日 期 實(shí)驗(yàn)題 目實(shí)驗(yàn)六 銀行家算法實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、 了解掌握銀行家算法;2、 學(xué)會(huì)模擬實(shí)現(xiàn)資源分配,同時(shí)按要求編寫和調(diào)試一個(gè)系統(tǒng)分配資源的簡單模擬程序;3、 觀察死鎖產(chǎn)生的條件,并使用適當(dāng)?shù)乃惴?,有效的防止和避免死鎖的發(fā)生。實(shí)驗(yàn)理論基礎(chǔ)設(shè)計(jì)要求:編制銀行家算法通用程序,并檢測所給狀態(tài)的系統(tǒng)安全性。 1.銀行家算法: 設(shè)進(jìn)程i提出請求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的申請已獲批準(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ì)的目的是通過編寫和調(diào)試一個(gè)系統(tǒng)動(dòng)態(tài)分配資源的簡單模擬程序,觀察死鎖產(chǎn)生的條件,并采用適當(dāng)?shù)乃惴?,有效地防止和避免死鎖地發(fā)生。要求如下:(1)模擬一個(gè)銀行家算法;(2)初始化時(shí)讓系統(tǒng)擁有一定的資源;(3)用鍵盤輸入的方式申請資源;(4)如果預(yù)分配后,系統(tǒng)處于安全狀態(tài),則修改系統(tǒng)的資源分配情況;(5)如果預(yù)分配后,系統(tǒng)處于不安全狀態(tài),則提示不能滿足請求。 以下提供了部分該實(shí)例的源代碼,要求同學(xué)們根據(jù)理論基礎(chǔ)部分內(nèi)容分析該源代碼,并將缺失的程序
4、代碼補(bǔ)充完整,然后調(diào)試這段程序,最終按要求給出相應(yīng)的結(jié)論。#include #include #include #include #define M 3 /資源種類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)程申請的資源是否能分配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用來結(jié)束安全序列的查找 int flag=1; / flag = 0表示當(dāng)前可用資源 進(jìn)程申請資源數(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; /用來比較requestj needij 和requestj availablej int request3;while(1)flag1 = flag2 = 0;printf(請輸入要操作的進(jìn)程號:);scanf(%d, &i);if(iN|i0) printf(你輸入的進(jìn)程號不存在!); break;printf(請輸入各類資源的請
10、求數(shù):);scanf(%d %d %d, &request0, &request1, &request2);/請?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(請選擇接下來的操作:);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(無法找到安全序列,請重新生成數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 解讀注冊會(huì)計(jì)師考試標(biāo)準(zhǔn)化趨勢對考生的影響試題及答案
- 運(yùn)維優(yōu)化面試題及答案
- 農(nóng)藝師考試實(shí)戰(zhàn)技能提升試題及答案
- 項(xiàng)目管理考試的直接實(shí)踐要求試題及答案
- 花藝師考試中實(shí)戰(zhàn)經(jīng)驗(yàn)與理論知識的結(jié)合方式試題及答案
- 2025年并購重組市場的現(xiàn)狀與挑戰(zhàn)試題及答案
- 2024年項(xiàng)目管理考試新趨勢試題及答案
- 證券從業(yè)資格證考試應(yīng)試能力試題及答案
- 2024年項(xiàng)目管理考試模擬題目試題及答案
- 考生特質(zhì)2025年注冊會(huì)計(jì)師考試試題及答案分析
- 特種設(shè)備日管控、周排查、月調(diào)度模板
- 印章封存登記表
- 社會(huì)工作者之初級社會(huì)工作實(shí)務(wù)模擬試題及答案A4打印
- 工作交接表excel模板
- 滾筒式柑橘分選機(jī)的設(shè)計(jì)
- 孟母三遷成語故事
- 瓦斯發(fā)電方案
- Q-CR 807-2020 隧道噴射混凝土用液體無堿速凝劑
- 民間非營利組織會(huì)計(jì)制度分解
- GB/T 20564.2-2017汽車用高強(qiáng)度冷連軋鋼板及鋼帶第2部分:雙相鋼
- GB/T 13914-2013沖壓件尺寸公差
評論
0/150
提交評論