版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、. 實驗二:死鎖的檢測和預防一、 實驗目的1、進一步了解進程的并發(fā)執(zhí)行。2、加強對進程死鎖的理解3、是用銀行家算法完成死鎖檢測二、 實驗內容給出進程需求矩陣C、資源向量R以及一個進程的申請序列。使用進程啟動拒絕和資源分配拒絕(銀行家算法)模擬該進程組的執(zhí)行情況。要求:初始狀態(tài)沒有進程啟動計算每次進程申請是否分配?如:計算出預分配后的狀態(tài)情況(安全狀態(tài)、不安全狀態(tài)),如果是安全狀態(tài),輸出安全序列。每次進程申請被允許后,輸出資源分配矩陣A和可用資源向量V。每次申請情況應可單步查看,如:輸入一個空格,繼續(xù)下個申請 三、 實驗環(huán)境VC+四、 實驗原理及實驗思路1、安全狀態(tài):如果存在一個由系統(tǒng)中所有進程
2、構成的安全序列P1,Pn,則系統(tǒng)處于安全狀態(tài)。安全狀態(tài)一定是沒有死鎖發(fā)生。 2、不安全狀態(tài):不存在一個安全序列。不安全狀態(tài)一定導致死鎖。 安全序列:一個進程序列P1,Pn是安全的,如果對于每一個進程Pi(1in),它以后尚需要的資源量不超過系統(tǒng)當前剩余資源量與所有進程Pj(ji)當前占有資源量之和。 3、銀行家算法: 我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進程分配資源,當進程首次申請資源時,要測試該進程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當前的申請量分
3、配資源,否則就推遲分配。當進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程已占用的資源數與本次申請的資源數之和是否超過了該進程對資源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大資源量,若能滿足則按當前的申請量分配資源,否則也要推遲分配。4、銀行家算法的思路: 1),進程一開始向系統(tǒng)提出最大需求量. 2),進程每次提出新的需求(分期貸款)都統(tǒng)計是否超出它事先提出的最大需求量. 3),若正常,則判斷該進程所需剩余剩余量(包括本次申請)是否超出系統(tǒng)所掌握的 剩余資源量,若不超出,則分配,否則等待. 5、銀行家算法的數據結構:1),系統(tǒng)剩余資源量An,其中An表
4、示第I類資源剩余量. 2),各進程最大需求量,Bmn,其中Bji表示進程j對i 類資源最大需求. 3),已分配資源量Cmn,其中Cji表示系統(tǒng)j程已得到的第i資源的數量. 4),剩余需求量.Dmn,其中Dji對第i資源尚需的數目.五、 流程圖銀行家算法:安全檢測:六、 源代碼#include string.h #include #include #define M 5 #define N 3 #define FALSE 0 #define TRUE 1 /*M個進程對N類資源最大資源需求量*/ int MAXMN=7,5,3,3,2,2,9,0,2,2,2,2,4,3,3; /*系統(tǒng)可用資源數
5、*/ int AVAILABLEN=10,5,7; /*M個進程對N類資源已經分配數量*/ int ALLOCATIONMN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /*M個進程還需要N類資源的資源量 */ int NEEDMN=7,5,3,3,2,2,9,0,2,2,2,2,4,3,3; /*M個進程還需要N類資源的資源量*/ int RequestN=0,0,0; void main() int i=0,j=0; char flag=Y; char finishFlag=Y;void showdata(); void changdata(int); void rsto
6、rdata(int); int chkerr(int); showdata(); while(finishFlag=Y|finishFlag=y) /可以分配資源 i=-1; while(i=M) /判斷申請的資源號是否有效 printf(請輸入需申請資源的進程號(從0到%d,否則重輸入!):,M-1); scanf(%d,&i); if(i=M)printf(輸入的進程號不存在,重新輸入!n); printf(請輸入進程%d申請的資源數n,i); for (j=0;jNEEDij) /進程申請資源數大于進程還需要的資源 printf(進程%d申請的資源數大于進程%d還需要%d類資源的資源量!
7、申請不合理,出錯!請重新選擇!n,i,i,j); flag=N; break; else if(RequestjAVAILABLEj) /進程申請資源數大于系統(tǒng)可用該類資源量 printf(進程%d申請的資源數大于系統(tǒng)可用%d類資源的資源量!申請不合理,出錯!請重新選擇!n,i,j); flag=N; break; if(flag=Y|flag=y) int result;changdata(i); result=chkerr(i);if(result=1) rstordata(i); showdata(); else showdata(); /else /showdata(); printf
8、(n); printf(是否繼續(xù)銀行家算法演示,按Y或y鍵繼續(xù),按N或n鍵退出演示: ); getchar();scanf(%c,&finishFlag); void showdata() /顯示各類資源的分配情況 int i,j; printf(系統(tǒng)可用的資源數為:n); printf( ); for (j=0;jN;j+) printf( 資源%d:%d ,j,AVAILABLEj); printf(n); printf(各進程還需要的資源量:n); for (i=0;iM;i+) printf( 進程%d ,i); for (j=0;jN;j+) printf(資源%d:%d ,j,NE
9、EDij); printf(n); printf(各進程已經得到的資源量: n); for (i=0;iM;i+) printf( 進程%d ,i); for (j=0;jN;j+) printf(資源%d:%d ,j,ALLOCATIONij); printf(n); void changdata(int k) int j; for (j=0;jN;j+) AVAILABLEj=AVAILABLEj-Requestj; ALLOCATIONkj=ALLOCATIONkj+Requestj; NEEDkj=NEEDkj-Requestj; void rstordata(int k) int j
10、; for (j=0;jN;j+) AVAILABLEj=AVAILABLEj+Requestj; ALLOCATIONkj=ALLOCATIONkj-Requestj; NEEDkj=NEEDkj+Requestj; int chkerr(int s) /檢查是否能夠分配該資源 int WORK,FINISHM,tempM; int i,j,k=0; for(i=0;iM;i+)FINISHi=FALSE; for(j=0;jN;j+) WORK=AVAILABLEj; i=s; while(iM) if (FINISHi=FALSE&NEEDij=WORK) WORK=WORK+ALLOCATIONij; FINISHi=TRUE; tempk=i; k+; i=0; else i+; for(i=0;iM;i+) if(FINISHi=FALSE) printf(n系統(tǒng)不安全! 本次資源申請不成功!nn); return 1; printf(n經安全性檢查,系統(tǒng)安全,本次分配成功。nn); pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全策劃及風險分級管理制度
- 第四章《光現(xiàn)象》基礎練習題 (含解析)2024-2025學年物理人教版八年級上冊
- 《一橋飛架連天塹》課件 2024-2025學年嶺南美版 (2024)初中美術七年級上冊
- 2024至2030年中國普通金屬膨脹螺栓行業(yè)投資前景及策略咨詢研究報告
- 2014-2018年鉭酸鋰行業(yè)投資分析報告
- 2010-2012年碳五行業(yè)市場研究與競爭力分析報告
- 2024年湖南省長沙市中考語文試題含解析
- 2024年中國電子屏市場調查研究報告
- 2024年中國冷光無煙煙花市場調查研究報告
- 高中語文第12課動物游戲之謎課件3新人教版必修
- 統(tǒng)計學說課(一門課)課件
- 人教鄂教版六年級科學上冊全冊教學設計教案
- 三年級數學趣味競賽試題課件
- (新版)天翼云從業(yè)者寶典考試合集題庫(含答案)
- ECMO(體外膜肺氧合)課件
- 音樂教師個人專業(yè)發(fā)展三年規(guī)劃
- (建設項目投資估算范本)
- 實驗室安全檢查記錄表(實驗場所)
- 醫(yī)囑單模板:長期醫(yī)囑單模板與臨時醫(yī)囑單模板
- 科室運營分析模板
- 篆刻學ppt精品課件
評論
0/150
提交評論