版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
一、實驗目的銀行家算法是由Dijkstra設計的最具代表性的避免死鎖的算法,本實驗要求用高級語言編寫一個銀行家的模擬算法,通過本實驗可以對預防死鎖和銀行家算法有更深刻的認識。二、實驗儀器設備儀器設備名稱規(guī)格型號編號備注PCWindos764位操作系統(tǒng)軟件Vc++三、實驗內(nèi)容.設置數(shù)據(jù)結構包括可利用資源向量(Availiable),最大需求矩陣(MAX),分配矩陣(Allocation),需求矩陣(Need).設計安全性算法設置工作向量Work表示系統(tǒng)可提供進程繼續(xù)運行可利用資源數(shù)目,F(xiàn)inish表示系統(tǒng)是否有足夠的資源分配給進程。四、實驗代碼#include<string.H>#include<stdio.h>#include<stdlib.h>include<conio.H>/*用至1」了getch()*/defineM5/*進程數(shù)*/defineN3/*資源數(shù)*/defineFALSE0defineTRUE1/*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]={3,3,2};/*M個進程已分配到的N類數(shù)量*/intALLOCATION[M][N]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};/*M個進程已經(jīng)得到N類資源的資源量*/intNEED[M][N]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};/*M個進程還需要N類資源的資源量*/intRequest[N]={0,0,0};voidmain(){inti=0,j=0;chark;charflag;voidshowdata();voidchangdata(int);voidrstordata(int);intchkerr(int);showdata();enter:{printf(”請輸入需申請資源的進程號(從0到)printf("%d",M-1);printf("):");scanf("%d",&i);}if(i<0||i>=M){printf("輸入的進程號不存在,重新輸入!也");gotoenter;}err:{printf("請輸入進程”);printf("%d",i);printff呻請的資源數(shù)山,);printf("類別:ABC'n");printf("");for(j=0;j<N;j++){scanf("%d",&Request[j]);if(Request[j]>NEED[i][j]){printf("%d",i);printfC號進程”);printf("申請的資源數(shù)>進程)printf("%d",i);printf("還需要");printf("%d",j);printf("類資源的資源量!申請不合理,出錯!請重新選擇!\n");gotoerr;)else(if(Request[j]>AVAILABLE[j])(printf("進程");printf("%d",i);printf("申請的資源數(shù)大于系統(tǒng)可用)printf("%d",j);printfC類資源的資源量!申請不合理,出錯!請重新選擇!\n");gotoerr;))))changdata(i);if(chkerr(i))(rstordata(i);showdata();)elseshowdata();printf("\n");printf("按'y'或'Y'鍵繼續(xù),否則退出\n");flag=getch();if(flag=='y'||flag=='Y')(gotoenter;)else(exit(0);))/*顯示數(shù)組*/voidshowdata()(inti,j;printf("系統(tǒng)可用資源向量:\n");printf("***Available***\n");printfC資源類別:ABC'n");printff資源數(shù)目:");for(j=0;j<N;j++)(printf("%d",AVAILABLE[j]);)printf("\n");printf("\n");printf("各進程還需要的資源量:\n");printf("******Need******\n");printf("資源類別:ABC'n");for(i=0;i<M;i++)(printf("");printf("%d",i);printf("號進程:");for(j=0;j<N;j++)(printf("%d",NEED[i][j]);)printf("\n");)printf("\n");printff各進程已經(jīng)得到的資源量:\n");printf("***Allocation***\n");printf("資源類別:ABC'n");for(i=0;i<M;i++)(printf("");printf("%d",i);printf("號進程:");/*printf(":\n");*/for(j=0;j<N;j++)(printf("%d",ALLOCATION[i][j]);)printf("\n");)printf("\n");)/*系統(tǒng)對進程請求響應,資源向量改變*/voidchangdata(intk)(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];))/*資源向量改變*/voidrstordata(intk)(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];))/*安全性檢查函數(shù)*/intchkerr(ints)(intWORK,FINISH[M],temp[M];inti,j,k=0;for(i=0;i<M;i++)FINISH[i]=FALSE;for(j=0;j<N;j++)(WORK=AVAILABLE[j];i=s;while(i<M)(if(FINISH[i]==FALSE&&NEED[i][j]<=WORK)(WORK=WORK+ALLOCATION[i][j];FINISH[i]=TRUE;temp[k]=i;k++;i=0;)else(i++;))for(i=0;i<M;i++)if(FINISH[i]==FALSE)(printf("\n");printf("系統(tǒng)不安全!本次資源申請不成功!\n");printf("\n");return1;))printf("\n");printf("經(jīng)安全性檢查,系統(tǒng)安全,本次分配成功。\n");printf("\n");printf("本次安全序列:\n");printf("進程依次為");for(i=0;i<M;i++)(printf("%d",temp[i]);printf("->");)printf("\n");return0;)五、實驗效果圖
進程已經(jīng)得到的費源量C:\U5ers\Arlen\Deekto §l.exe清新人進程例請的簌源以類別:口毗進程已經(jīng)得到的費源量C:\U5ers\Arlen\Deekto §l.exe清新人進程例請的簌源以類別:口毗1經(jīng)安全性檢查:系疣芟全,本次分配成攻。莓贏解;3—共筑口」用資源叵I量:liable***修源類別哨即黃源數(shù)目:23日容進程逕需要的資源量:?M.K'MNeEdXMXMXK資源秀別:口BC號植賽641號選棹皿號遇桂:£■四號選替011號速槨M31備進程二丕需要按,,或,F(xiàn)犍繼續(xù),否則退出備進程二丕需要按,,或,F(xiàn)犍繼續(xù),否則退出資源登ImmmmkmHced******濟源恚利:ABC號逆程:641一號逑祗12?2號逑程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆喀什地區(qū)2025-2026學年九年級上學期期末考試物理試卷(含答案)
- 廣東省揭陽市惠來縣2025-2026學年八年級數(shù)學上學期期末考試(含答案)
- 甘肅省定西市臨洮縣2025-2026學年下學期九年級化學一模練習試卷(含答案)
- 物化考試題及答案
- 蚊蟲危害題目及答案
- 網(wǎng)上答題題目及答案
- 辦事處行政專員崗位職責
- 部編版一年級數(shù)學上冊期末試卷及答案(真題)
- 山西省忻州市忻府區(qū)播明聯(lián)合學校2022年高二語文測試題含解析
- 2026年培訓師專業(yè)技能提升
- 消防工程施工資料管理與規(guī)范
- 《2025年CSCO非小細胞癌診療指南》解讀
- 在線網(wǎng)課學習課堂《人工智能(北理 )》單元測試考核答案
- 摩托車新車寄售協(xié)議書范文范本
- DL∕T 1724-2017 電能質量評估技術導則 電壓波動和閃變
- 民警職級晉升工作總結范文三篇
- 銀齡計劃教師總結
- (高清版)DZT 0351-2020 野外地質工作后勤保障要求
- 港珠澳大橋工程管理創(chuàng)新與實踐
- 化妝培訓行業(yè)分析
- 孩子如何正確與師長相處與溝通
評論
0/150
提交評論