版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)二實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)源碼: #include stdio.h #include #include #define False 0 / 定義False #define True 1 / 定義True int Max100100 = 0; / 各進(jìn)程所需各類資源的最大需求 int Avaliable100 = 0; / 系統(tǒng)可用資源 char name100 = 0; / 資源的名稱 int Allocation100100 = 0; / 系統(tǒng)已分配資源 int Need100100 = 0; / 還需要資源 int Request100 = 0; / 請(qǐng)求資源向量 int temp100 = 0
2、; / 存放安全序列 int Work100 = 0; / 存放系統(tǒng)可提供資源 int M = 100; / 作業(yè)的最大數(shù)為100 int N = 100; / 資源的最大數(shù)為100 / 顯示資源矩陣 void showdata() int i,j; printf(此時(shí)刻的資源分配情況為:n); / 顯示表頭 printf( Max Allocation Need Avaliablen); printf(PCB ); / 顯示作業(yè)名稱 for(j = 0;j 4;j+) for(i = 0;i N;i+) printf(%c ,namei); printf( ); printf(); / 顯示
3、當(dāng)前作業(yè)資源分配情況 for(i = 0;i M;i+) printf( %d ,i); for(j = 0;j N;j+) printf(%d ,Maxij); ); printf( for(j = 0;j N;j+) printf(%d ,Allocationij); printf( ); for(j = 0;j N;j+) printf(%d ,Needij); if(i = 0) printf( ); for (j = 0;j N;j+) printf(%d ,Avaliablej); printf(); / 進(jìn)行資源分配 int changdata(int i) int j; for
4、 (j = 0;j M;j+) Avaliablej = Avaliablej - Requestj; Allocationij = Allocationij + Requestj; Needij = Needij - Requestj; return 1; / 安全性算法 int safe() int i,d,k = 0,m,h,s,apply,Finish100 = 0; int j; int flag = 0; for(i = 0;i N;i+) Worki = Avaliablei; printf( 安全性檢查 n); printf( Work Need Work+Allocation
5、 Allocation Finishn); ); printf(PCB / 顯示作業(yè)名稱 4;j+) for(j = 0;j for(i = 0;i N;i+) printf(%c ,namei); ); printf( printf(); / 顯示當(dāng)前作業(yè)資源分配情況 for(i = 0;i M;i+) apply = 0; for(j = 0;j N;j+) if (Finishi = False & Needij = Workj) apply+; if(apply = N) printf( %d ,i); for(d = 0;d N;d+) printf(%d ,Workd); prin
6、tf( ); for(d = 0;d N;d+) printf(%d ,Needid); printf( ); for(d = 0;d N;d+) printf(%d ,Allocationid); printf( ); for(m = 0;m N;m+) Workm = Workm + Allocationim; printf(%d ,Workm); / 變分配數(shù) Finishi = True; tempk = i; printf( ); printf(rue ); printf(); i = -1; k+; flag+; for(i = 0;i M;i+) if(Finishi = Fal
7、se) for(j = 0;j N;j+) Avaliablej = Avaliablej + Requestj; Allocationij = Allocationij - Requestj; Needij = Needij + Requestj; printf(系統(tǒng)進(jìn)入不安全狀態(tài)!此時(shí)系統(tǒng)不分配資源!n); / 不成功系統(tǒng)不安全 return 0; printf(此時(shí)系統(tǒng)是安全的!n); / 如果安全,輸出成功 牰湩晴尨安全序列為:); for(i = 0;iM;i+) / 輸出運(yùn)行進(jìn)程數(shù)組 printf(%d,tempi); if(i ); printf(); return 0; / 利
8、用銀行家算法對(duì)申請(qǐng)資源對(duì)進(jìn)行判定 void share() char ch; int i = 0,j = 0; ch = y; printf(請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0 - %d):,M - 1); scanf(%d,&i); / 輸入須申請(qǐng)的資源號(hào) printf(請(qǐng)輸入進(jìn)程 %d 申請(qǐng)的資源:n,i); for(j = 0;j N;j+) printf(%c:,namej); scanf(%d,&Requestj); / 輸入需要申請(qǐng)的資源 for (j = 0;j Needij) / 判斷申請(qǐng)是否大于需求,若大于則出錯(cuò) printf(進(jìn)程 %d 申請(qǐng)的資源大于它需要的資源 ,i); p
9、rintf( 分配不合理,不予分配!n); ch = n; break; else 判斷申請(qǐng)是否大于當(dāng)前資源,若大于則/ if(Requestj Avaliablej) / 出錯(cuò) printf(進(jìn)程 %d 申請(qǐng)的資源大于系統(tǒng)現(xiàn)在可利用的資源,i); printf( 分配出錯(cuò),不予分配!n); ch = n; break; if(ch = y) changdata(i); / 根據(jù)進(jìn)程需求量變換資源 showdata(); / 根據(jù)進(jìn)程需求量顯示變換后的資源 safe(); / 根據(jù)進(jìn)程需求量進(jìn)行銀行家算法判斷 / 主函數(shù) int main() int t = 1,i,j,number,choi
10、ce,m,n,flag; char ming; printf(請(qǐng)首先輸入系統(tǒng)可供資源種類的數(shù)量:); scanf(%d,&n); N = n; for(i = 0;i n;i+) 牰湩晴尨資源 %d 的名稱:,i + 1); scanf(%s,&ming); namei = ming; 牰湩晴尨資源的數(shù)量:); scanf(%d,&number); Avaliablei = number; printf(); 牰湩晴尨 請(qǐng)輸入作業(yè)的數(shù)量:); scanf(%d,&m); M = m; printf(請(qǐng)輸入各進(jìn)程的最大需求量( %d * %d 矩陣)Max:n,m,n); for(i = 0;i
11、 m;i+) for(j = 0;j n;j+) scanf(%d,&Maxij); do flag = 0; printf( 請(qǐng)輸入各進(jìn)程已經(jīng)申請(qǐng)的資源量( %d * %d 矩陣)Allocation:n,m,n); for(i = 0;i m;i+) for(j = 0;j Maxij) flag = 1; Needij = Maxij - Allocationij; if(flag) printf(申請(qǐng)的資源大于最大需求量,請(qǐng)重新輸入!nn); while(flag); showdata(); / 顯示各種資源 safe(); / 用銀行家算法判定系統(tǒng)是否安全 while(1) if(t = 1) printf( 利用銀行家算法預(yù)分配資源 n); share(); t = 0; else br
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年異戊橡項(xiàng)目建議書
- 2024年激光掃瞄顯微鏡項(xiàng)目建議書
- 全國2024年4月高等教育自考試市場(chǎng)營銷策劃試題含解析
- 2024~2025學(xué)年一年級(jí)語文上冊(cè)聲母與ün的拼讀
- 2024年液態(tài)食品包裝機(jī)械項(xiàng)目發(fā)展計(jì)劃
- 2024年血細(xì)胞分析儀器試劑項(xiàng)目建議書
- 北京市國電系統(tǒng)-2023年《通信安規(guī)》科目 單選題+多選題+判斷題+簡(jiǎn)答題真題拔高卷3月份B卷
- 安徽省國家電網(wǎng)-2024年《通信安規(guī)》科目 單選題+多選題+判斷題+簡(jiǎn)答題真題沖刺卷3月份B卷
- 2024年HGS紙用阻燃劑合作協(xié)議書
- 2024年連續(xù)波測(cè)距儀合作協(xié)議書
- 事業(yè)單位崗位設(shè)置工作情況報(bào)告
- 電站大壩消力池混凝土施工組織設(shè)計(jì)
- Insight 報(bào)告:肥胖癥治療藥物研究
- 第一章 動(dòng)量守恒定律 基礎(chǔ)達(dá)標(biāo)卷(A卷)(考試版)
- 節(jié)約糧食愛惜糧食介紹宣傳PPT
- 滬科版九年級(jí)上冊(cè)數(shù)學(xué)22.1《比例線段》教案
- 高級(jí)政工師專項(xiàng)測(cè)試卷含答案
- GA 1800.5-2021電力系統(tǒng)治安反恐防范要求第5部分:太陽能發(fā)電企業(yè)
- 國家義務(wù)教育四年級(jí)科學(xué)下冊(cè)質(zhì)量監(jiān)測(cè)學(xué)業(yè)水平測(cè)試模擬題
- 解讀《中國式現(xiàn)代化》PPT
- 建筑公司各級(jí)人員安全生產(chǎn)責(zé)任制
評(píng)論
0/150
提交評(píng)論