




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)實(shí)驗(yàn)二(銀行家算法)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)源碼:#include"stdio.h"#include<iostream.h>#include<string.h>TOC\o"1-5"\h\z#defineFalse0 〃定義False#defineTrue1 〃定義TrueintMax[100][100]={0}; // 各進(jìn)程所需各類資源的最大需求intAvaliable[100]={0}; // 系統(tǒng)可用資源charname[100]={0}; //資源的名稱intAllocation[100][100]={0}; //系統(tǒng)已分配資源intNeed[100][100]={0}; //還需要資源TOC\o"1-5"\h\zintRequest[100]={0}; //請求資源向量inttemp[100]={0}; //存放安全序列intWork[100]={0}; //存放系統(tǒng)可提供資源intM=100; //作業(yè)的最大數(shù)為100intN=100; //資源的最大數(shù)為100//顯示資源矩陣voidshowdata(){inti,j;printf("\n此時(shí)刻的資源分配情況為:\n〃);//顯示表頭printf(" MaxAllocationNeedAvaliable'n");printf("PCB ");//顯示作業(yè)名稱for(j=0;j<4;j++){for(i=0;i<N;i++)printf("%c",name[i]);printf("");)printf(〃\n〃);//顯示當(dāng)前作業(yè)資源分配情況for(i=0;i<M;i++){printf('%d ",i);for(j=0;j<N;j++)printf('%d",Max[i][j]);printf("");for(j=0;j<N;j++)printf('%d”,Allocation[i][j]);printf("");for(j=0;j<N;j++)printf("%d”,Need[i][j]);if(i==0){printf("");for(j=0;j<N;j++)printf("%d”,Avaliable[j]);)printf(〃\n〃);//進(jìn)行資源分配intchangdata(inti)(intj;for(j=0;j<M;j++){Avaliable[j]=Avaliable[j]一Request[j];Allocation[i][j]=Allocation[i][j]+Request[j];Need[i][j]=Need[i][j]-Request[j];)return1;)//安全性算法intsafe(){inti,d,k=0,m,h,s,apply,Finish[100]={0};intj;intflag=0;for(i=0;i<N;i++)Work[i]=Avaliable[i];printf("安全性檢查\n");printf(" WorkNeedAllocation Work+AllocationFinish\n");printf("PCB");//顯示作業(yè)名稱for(j=0;j<4;j++){for(i=0;i<N;i++)printf("%c",name[i]);printf("");)printf(〃\n〃);//顯示當(dāng)前作業(yè)資源分配情況for(i=0;i<M;i++){apply=0;for(j=0;j<N;j++){if(Finish[i]==False&&Need[i][j]<=Work[j])(apply++;if(apply==N)(printf("%d ",i);for(d=0;d<N;d++)printf("%d”,Work[d]);printf("");for(d=0;d<N;d++)printf("%d”,Need[i][d]);printf("");for(d=0;d<N;d++)printf("%d”,Allocation[i][d]);printf("");for(m=0;m<N;m++)(Work[m]=Work[m]+Allocation[i][m];printf("%d”,Work[m]);}//變分配數(shù)Finish[i]=True;temp[k]=i;printf(" ");printf("true");printf(〃\n〃);i=-1;k++;flag++;}}}}for(i=0;i<M;i++){if(Finish[i]==False){for(j=0;j<N;j++){Avaliable[j]=Avaliable[j]+Request[j];;Allocation[i][j] =Allocation[i][j]-Request[j];;
Need[i][j]Need[i][j]Need[i][j]Need[i][j]Request[j];)printf("\n系統(tǒng)進(jìn)入不安全狀態(tài)!此時(shí)系統(tǒng)不分配資源!\n"); //不成功系統(tǒng)不安全return0;printf("\n此時(shí)系統(tǒng)是安全的!\n〃);//如果安全,輸出成功printf(〃安全序列為:");for(i = 0;i<M;i++)//輸出運(yùn)行進(jìn)程數(shù)組(printf("%d",temp[i]);if(i<M-1)printf(〃->〃);printf(〃\n〃);return0;
//利用銀行家算法對申請資源對進(jìn)行判定voidshare()charch;inti=0,j=0;ch='y';printf("\n請輸入要求分配的資源進(jìn)程號(hào)(0-%d):",M-1);scanf("%d",&i);//輸入須申請的資源號(hào)printf("\n請輸入進(jìn)程%d申請的資W:\n",i);for(j=0;j<N;j++)(printf("%c:",name[j]);scanf("%d”,&Request[j]);//輸入需要申請的資源)for(j=0;j<N;j++){if(Request[j]Need[i][j])if(Request[j]Need[i][j])//判斷申請是否大于需求,若大于則出錯(cuò)printf("\n進(jìn)程%d申請的資源大于它需要的資源",i);printf("分配不合理,不予分配!\n");ch='n';break;}else{if(Request[j]>Avaliable[j])//判斷申請是否大于當(dāng)前資源,若大于則{//出錯(cuò)printf("\n進(jìn)程%d申請的資源大于系統(tǒng)現(xiàn)在可利用的資源〃,i);printf("分配出錯(cuò),不予分配!\n");ch='n';break;}}}if(ch=='y'){changdata(i); //根據(jù)進(jìn)程需求量變換資源showdata(); //根據(jù)進(jìn)程需求
//根據(jù)進(jìn)程需求量顯示變換后的資源safe();//根據(jù)進(jìn)程需求量進(jìn)行銀行家算法判斷//主函數(shù)intmain()intt=1,i,j,number,choice,m,n,flag;charming;printf("\n請首先輸入系統(tǒng)可供資源種類的scanf("%d",&n);N=n;for(i=0;i<n;i++)(printf("資源%d的名稱:",i+1);scanf("%s",&ming);name[i]=ming;printf("資源的數(shù)量:"”scanf("%d",&number);Avaliable[i]=number;printf("\n");printf("請輸入作業(yè)的數(shù)量:");scanf("%d",&m);M=m;printf("\n請輸入各進(jìn)程的最大需求量(%d*%d矩陣)[Max]:\n",m,n);for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d”,&Max[i][j]);do{flag=0;printf("\n請輸入各進(jìn)程已經(jīng)申請的資源量(%d*%d矩陣)[Alloca知on]:\n",m,n);for(i=0;i<m;i++)for(j=0;j<n;j++){scanf("%d”,&Allocation[i][j]);if(Allocation[i][j]>Max[i][j])flag=1;Max[i][j]Need[i][j]Allocation[i][j];
Max[i][j]}if(flag)printf("\n申請的資源大于最大需求量,請重新輸入!\n\n〃);}while(flag);//顯示各種資源//用銀行家算法判定利用銀行家算法預(yù)分配資//顯示各種資源//用銀行家算法判定利用銀行家算法預(yù)分配資safe();系統(tǒng)是否安全while(1){if(t==1){printf("\n源\n〃);share();t=0;}elsebreak;printf("\n是否繼續(xù)銀行家算法?(按1鍵繼續(xù),按其它任意鍵退出):〃);scanf("%d",&t);printf(〃\n〃);return1;實(shí)驗(yàn)結(jié)果截圖:運(yùn)行程序:輸入相應(yīng)數(shù)據(jù)并完成首次自檢:睛輸入作業(yè)的數(shù)量污請輸入各進(jìn)程的最大需求量《5*3矩陣〉[歸心:753322932^22433請布人各進(jìn)程已經(jīng)申請的資源苴(5*3矩陣)UUIocafEnrb1的i?w0口毋aftuA11ahl.R433安全性檢查Work0^2 431NeedAllocationCB AECABCABC0 743 ?43 91S4 1055 431 @02Work+AllncationABC5327437531655105?FinishtpueftuA11ahl.R433安全性檢查Work0^2 431NeedAllocationCB AECABCABC0 743 ?43 91S4 1055 431 @02Work+AllncationABC5327437531655105?Finishtpueti'uetruetruetrue此時(shí)呈統(tǒng)是安全的,安全序列S=i->3->0->2-X利用銀行家算法預(yù)分配資源請輸入要求分B的資源進(jìn)程號(hào)6-4>:進(jìn)程1請求資源Request(1,0,2):"tM乍業(yè)慕名5^?驗(yàn)\fin曲ed\shiyaner2\Debug^shiyanerZ.exe"一MaxAllocationNeedflBC ABC (1DCAualiablefiDC23060S3024 433002431安全性檢查WcrkNeedAllocEtticun1 230 020 MaxAllocationNeedflBC ABC (1DCAualiablefiDC23060S3024 433002431安全性檢查WcrkNeedAllocEtticun1 230 020 302ABC ABC ADCWork<-AllocationABCFinishtrueail 2iiQ 743 743 0102 753 EBB 3024 10S5 431 002743753la551657truetruet:pu.etrue此
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 優(yōu)化信用環(huán)境助力統(tǒng)一大市場建設(shè)的信用評估標(biāo)準(zhǔn)化體系
- 美容美發(fā)店線上線下融合發(fā)展策略
- 公共事業(yè)公司的背景意義及必要性
- 2025至2030年中國體外培育牛黃行業(yè)市場研究分析及投資前景規(guī)劃報(bào)告
- 加強(qiáng)物流公司貨物追蹤與監(jiān)控系統(tǒng)
- 農(nóng)產(chǎn)品高質(zhì)量經(jīng)營的策略及實(shí)施路徑
- 天然氣企業(yè)成本控制與利潤優(yōu)化方案
- 情感引流面試題及答案
- 樂都中考試題及答案
- 情節(jié)訓(xùn)練考試題及答案
- 2025年社區(qū)工作者職業(yè)能力考試試卷及答案
- 2025遼寧永安建設(shè)發(fā)展限公司招聘30人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 國開2025年《資源與運(yùn)營管理》形考任務(wù)1-4答案
- 原材料采購應(yīng)急預(yù)案
- 長沙市直事業(yè)單位招聘工作人員考試真題2024
- 人工智能驅(qū)動(dòng)的動(dòng)態(tài)權(quán)限管理與訪問控制-洞察闡釋
- 材料力學(xué)(山東科技大學(xué))知到智慧樹期末考試答案題庫2025年山東科技大學(xué)
- DBJD25-67-2019甘肅省建筑與裝飾工程預(yù)算定額地區(qū)基價(jià)不含稅中冊
- 工業(yè)互聯(lián)網(wǎng)驅(qū)動(dòng)的軍工企業(yè)智能化改造路徑研究-洞察闡釋
- 江西省2025年初中學(xué)業(yè)水平考試樣卷(四)數(shù)學(xué)模擬試題 (含部分答案)
- 2025年CCAA《管理體系認(rèn)證基礎(chǔ)》考前必練題庫500題(含真題、重點(diǎn)題)
評論
0/150
提交評論