




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)實驗三:銀行家算法的實現(xiàn)一、 基本信息:a) 實驗題目:銀行家算法的實現(xiàn)b) 完成人姓名:韓璐璐c) 學號:71114115d) 報告日期:2016.5.27二、 實驗目的通過實驗,加深對多實例資源分配系統(tǒng)中死鎖避免方法銀行家算法的理解,掌握Windows環(huán)境下銀行家算法的實現(xiàn)方法,同時鞏固利用Windows API進行共享數(shù)據(jù)互斥訪問和多線程編程的方法。三、 實驗內(nèi)容1. 在Windows操作系統(tǒng)上,利用Win32 API編寫多線程應用程序?qū)崿F(xiàn)銀行家算法。2. 創(chuàng)建n個線程來申請或釋放資源,只有保證系統(tǒng)安全,才會批準資源申請。3. 通過Win32 API提供的信號量機制,實現(xiàn)共享數(shù)據(jù)
2、的并發(fā)訪問。四、程序運行時的初值和運行結(jié)果(系統(tǒng)截圖)五、源程序并附上注釋#include #include #include #include using namespace std;int r3 = 3, 3, 2 ;/系統(tǒng)擁有的資源int r0 = 0, r1 = 0, r2 = 0;/記錄申請資源class pcbpublic:int id;bool state;int max3;int alc3;int need3;pcb()void init()state = false;cout 請輸入進程的id,各個資源總需求量和已占用資源 id;cout a,b,c三種資源的最大使用量 ma
3、x0 max1 max2;cout a,b,c三種資源的已占有量 alc0 alc1 alc2;int rd(int n)return rand() % (n + 1);int request()/Sleep(1000);r0 = rd(max0 - alc0);r1 = rd(max1 - alc1);r2 = rd(max2 - alc2);cout 進程 id 申請資源a r0 申請資源b r1 申請資源c r2 r0 | r1r1 | r2r2)cout 沒有那么多資源! endl;return 0;if (r0 = (max0 - alc0) & r1 = (max1 - alc1)
4、 & r2 = (max2 - alc2)r0 = r0 + alc0;r1 = r1 + alc1;r2 = r2 + alc2;return 1;return 2;bool safe(vector temp, int i)int u = r0 - r0, k = r1 - r1, l = r2 - r2;for (int j = i; jtemp.size() - 1; j+)tempj = tempj + 1;temp.pop_back();int size = temp.size();/記錄下容器內(nèi)還有多少個進程/int rangesize;/記錄下隊列int x = 0;/計數(shù)器wh
5、ile (!temp.empty()static int j = 0;if (tempj.max0 - tempj.alc0) = u & (tempj.max1 - tempj.alc1) = k &(tempj.max2 - tempj.alc2) = l)/判斷是否能運行完cout 運行 tempj.id endl;u = u + tempj.alc0;k = k + tempj.alc1;l = l + tempj.alc2;for (int e = j; e= temp.size()j = 0;elsej+;if (j = temp.size()j = 0;x+;if (x = (s
6、ize*size)cout 沒有安全隊列,以上情況不成立 endl;cout endl;return false;return true;int main()srand(time(0);pcb p4;vector vp;for (int i = 0; i4; i+)pi.init();vp.push_back(pi);int x = 0;/計算器int c;cout 請選擇分配資源方法:1.銀行家算法 2.隨機算法 c;switch (c)case 1:while (!vp.empty()int a;static int i = 0;if (a = vpi.request() != 0)if
7、(a = 1)cout 進程 vpi.id 已經(jīng)結(jié)束 endl;for (int j = i; j= vp.size()i = 0;cout a資源還剩 r0 b資源還剩 r1 c資源還剩 r2 endl;cout endl;elseif (safe(vp, i)cout 存在安全隊列 endl;cout endl;vpi.alc0 = vpi.alc0 + r0;vpi.alc1 = vpi.alc1 + r1;vpi.alc2 = vpi.alc2 + r2;r0 = r0 - r0;r1 = r1 - r1;r2 = r2 - r2;cout a資源還剩 r0 b資源還剩 r1 c資源還
8、剩 r2 endl;cout = vp.size()i = 0;elsei+;if (i = vp.size()i = 0;x+;if (x = 200)cout 初始化的表不安全 endl;return 0;cout 進程已經(jīng)全部結(jié)束 endl;break;case 2:while (!vp.empty()int a2;static int i2 = 0;if (a2 = vpi2.request() != 0)if (a2 = 1)cout 進程 vpi2.id 已經(jīng)結(jié)束 endl;for (int j = i2; j= vp.size()i2 = 0;cout a資源還剩 r0 b資源還
9、剩 r1 c資源還剩 r2 endl;cout endl;elsevpi2.alc0 = vpi2.alc0 + r0;vpi2.alc1 = vpi2.alc1 + r1;vpi2.alc2 = vpi2.alc2 + r2;r0 = r0 - r0;r1 = r1 - r1;r2 = r2 - r2;cout a資源還剩 r0 b資源還剩 r1 c資源還剩 r2 endl;cout = vp.size()i2 = 0;elsei2+;if (i2 = vp.size()i2 = 0;x+;if (x = 200)cout 產(chǎn)生死鎖 endl;return 0;cout 進程已經(jīng)全部結(jié)束 endl;break;default:cout 選擇錯誤 endl;break;sy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省綿陽市三臺中學2024-2025學年高二(上)期末生物試卷(含解析)
- 溝槽開挖支護施工方案
- 橋架鋼結(jié)構(gòu)施工方案
- 導管室裝修施工方案
- 深圳燈光秀施工方案
- 反光涂料施工方案
- 防滑混凝土泳池施工方案
- 5以內(nèi)的3個數(shù)加減混合題
- 等效電路模型、單顆粒模型、均質(zhì)多孔模型、異構(gòu)模型等
- 地暖加壓泵換向閥工作原理
- 人教版PEP小學五年級英語下冊全冊教案(含計劃)
- 《公路工程造價標準高海拔高寒地區(qū)補充規(guī)定》
- 2024-2030年中國工控機行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 臨床護理實踐指南2024版
- 貴州省獸藥經(jīng)營質(zhì)量管理規(guī)范實施細則
- 常規(guī)弱電系統(tǒng)施工單價表純勞務
- 勞動合同(模版)4篇
- 2024-2025學年小學信息技術(shù)(信息科技)五年級下冊人教版教學設計合集
- 2024年大學試題(林學)-森林經(jīng)理學考試近5年真題集錦(頻考類試題)帶答案
- 醫(yī)學教材 《婦產(chǎn)科學》第9版課件-胎兒異常與多胎妊娠
- 2025年國家公務員考試行測(地市級)行政職業(yè)能力測驗試卷與參考答案
評論
0/150
提交評論