銀行家算法實(shí)驗(yàn)報(bào)告35989_第1頁
銀行家算法實(shí)驗(yàn)報(bào)告35989_第2頁
銀行家算法實(shí)驗(yàn)報(bào)告35989_第3頁
銀行家算法實(shí)驗(yàn)報(bào)告35989_第4頁
銀行家算法實(shí)驗(yàn)報(bào)告35989_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.專業(yè):班級(jí):學(xué)號(hào):姓名:年月日一實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)內(nèi)容………三問題描述……………………四設(shè)計(jì)思路………五詳細(xì)設(shè)計(jì)……………………六運(yùn)行結(jié)果…………………七心得體會(huì)……………………八參考文獻(xiàn)………附源程序………33452.每個(gè)進(jìn)程需要各類資源總數(shù)系統(tǒng)分配給各個(gè)進(jìn)程各類資源數(shù)1.判斷T0時(shí)刻的安全性2.如果系統(tǒng)是安全的,任意給出某個(gè)進(jìn)程的一戶向銀行家貸款。操,求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最配資源,否則就推遲分配。當(dāng)進(jìn)程在執(zhí)行中程已占用的資源數(shù)與本次申請(qǐng)的資源數(shù)之和大需求量。若超過則拒絕分配資源,若沒有能否滿足該進(jìn)程尚需的最大資源量,若能滿(0≤i≤n),它以后尚需要的資源量不超過系統(tǒng)當(dāng)前剩余資源量與所有進(jìn)程(j<i)當(dāng)前占有資源量之和。然后對(duì)用戶提出的請(qǐng)。的限制條件較弱,有可能獲得令人滿意的系統(tǒng)REQUESTcusneediAVAILABLEcusneed[i],則轉(zhuǎn)(3);否AVAILABLE[i]-=REQUEST[cusneed][i];ALLOCATIONcusneed][i]+=REQUEST[cusneed][i];STcusneedii,若對(duì)所有的j,有NEED[i][j]=0,則表此進(jìn)程資源分配完(1)設(shè)置兩個(gè)工作向量Work=AVAILABLE;FINISHrkALLOCATION(4)如所有的進(jìn)程Finish=true,則表示安全;否則系統(tǒng)不安全。.ES入AVAILABLE[i]-=REQUEST[i];ALLOCATION[i]+=REQUEST[i];STiAVAILABLE[i]+=REQUEST[i];NOALLOCATION[i]-=REQUEST[i];安全NEED[i]+=REQUEST[i];ES保持原分配ESES.2、判斷系統(tǒng)的安全性Safe()Safe()開始ijttempnmpnFYYtpWork>=Need[i][0])WorkNeedi1])WorkNeedi2])pFYWorkjAllocation[i][j];FYYtxt為程序的初始化輸入(2)執(zhí)行程序,讀取源文件,并判斷T0時(shí)刻所得結(jié)果:輸入(1)、本程序按下圖建立.txt源文件,作為程序的初始化輸入(2)執(zhí)行程序,讀取源文件,并判斷T0時(shí)刻所得結(jié)果:(3)T0時(shí)刻的安全序列(4)不合理的分配t.(5)合理的分配調(diào)用Request()函數(shù),測(cè)試該函數(shù)的可行性,如輸入P1進(jìn)程Request.夠數(shù)量的資源才可以執(zhí)行下去,但是資源有銀行家算法來避免“死鎖”。該算法就是一個(gè)資源分配調(diào)用函數(shù)來實(shí).屏等西安電子科技大學(xué)出版社2007-05pman著李師賢等譯.人民郵電出版社,2006-03-01曉勇著人民郵電出版社2007-02-01陳向群,馬洪兵著機(jī)械工業(yè)出版社2009-07-01學(xué)出版社2006-10-01【6】《數(shù)據(jù)結(jié)構(gòu)(STL框架)》王曉東著-09-01版社2007-05#include<fstream.h>#include<stdio.h>#include<stdlib.h>defineM//最大進(jìn)程數(shù)defineN//系統(tǒng)所擁有的資源類型intMax[M][N];//進(jìn)程對(duì)各類資源的最大需求intAllocation[M][N];//系統(tǒng)已為進(jìn)程所分配的各類資源數(shù)intNeed[M][N];//運(yùn)行進(jìn)程尚需的各類資源數(shù)intWorkN;//運(yùn)行進(jìn)程時(shí)系統(tǒng)所擁有的資源數(shù)boolfinish[M];//表示系統(tǒng)是否有足夠的資源分配給進(jìn)程intAvailable[N];//系統(tǒng)可利用的資源數(shù)intn_pro=0;//進(jìn)程的數(shù)目intflagM用于標(biāo)記安全序列intSafe1(intflag[],intn,intt);//輸出所有安全狀態(tài)voidshowoidshow{printf("\t%-9s\t%-9s\t%-9s\n","MAX","Allocation","Need");printf("\tABC\tABC\tABC\n");forinti=0;i<n_pro;i++){printfpdtdddtiMaxiMaxi,Max[i][2]);printfdddtAllocationiAllocationiAllocationi2]);printfdddnNeediNeediNeedi2]);}printf資源數(shù):\n");printf("\tA\tB\tC\n");printf("\t%d\t%d\t%d\n",Available[0],Available[1],Available[2]);}intReadfile()//從磁盤讀文件{intesttxt規(guī)定的格式提取線程等信息forjj<N;j++)printf("\tA\tB\tC\n");rintftdtdtdnAvailableAvailableAvailablerowhileinpro程的相關(guān)資源信息{forjj<N;j++)forjj<N;j++)ijforjj<N;j++){ijAllocationijAvailablej]-=Allocation[i][j];}}forjj<N;j++)WorkjAvailable[j];printf("顯示初始化資源分配表:\n");}{fori0;i<n_pro;i++)finishifalsewhiletempn{for(i=0;i<n_pro;i++){{//注釋部分用于調(diào)試程序//printf("%d\t%d%4d%4d\t",i,Work[0],Work[1],Work[2]);//printf("%d%4d%4d\n",Need[i][0],Need[i][1],Need[i][2]);tp=(Work[0]>=Need[i][0])&&(Work[1]>=Need[i][1])&&{finishitrueforintj;j<N;j++)WorkjAllocation[i][j];flagti;//printf("%d\tflag[%d]=%d",i,t,flag[t]);system("pause");printf("\n");t++;break;}}}tempn--;}fori0;i<n_pro;i++){printf("系統(tǒng)不安全,不存在安全序列\(zhòng)n");return-1;}forjj<N;j++)WorkjAvailable[j];gnpro}flagintnintt{intp,i,j,k;//p為標(biāo)記mpNforii<n;i++){tpWorkNeed[i][0]){forjj<N;j++)WorkjAllocation[i][j];flagti;}eforintj;j<t;j++){forjj<N;j++)WorkjAllocation[i][j];}{{forkk<n;k++)}{forkk<N;k++)tempkWorkk-Allocation[i][k];ntforkk<N;k++)Workk=temp[k];}}}}{printf("請(qǐng)輸入需要請(qǐng)求的進(jìn)程號(hào)(0~4):");nfdrqprintf("請(qǐng)輸入需要請(qǐng)求的資源數(shù)(ABC):");scanfdddRequest&Request[1],&Request[2]);if(Need[rq][0]<Request[0]||Need[rq][1]<Request[1]||Need[rq][2]<{配\n\n",rq);ilable<Request[0]||Available[1]<Request[1]||Available[2]{}forintj;j<N;j++){Available[j]-=Request[j];Allocation[rq][j]+=Request[j];}printf("假定系統(tǒng)可為p%d分配,分配后的資源分配表:\n",rq);forintk=0;k<N;k++)WorkkAvailable[k];{forintj;j<N;j++){Available[j]+=Re

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論