版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗五 實驗五 銀行家算法 銀行家算法一、實驗目的和要求 一、實驗目的和要求①理解死鎖概念,銀行家算法及安全檢測算法。②在 Linux 操作系統(tǒng)下用 C++進行編程。③利用 C++設計實現(xiàn)銀行家算法的基本過程。 ④驗證銀行家算法對于避免死鎖的作用。二、實驗方法內(nèi)容 二、實驗方法內(nèi)容①算法設計思路 算法設計思路1.設計進程對各類資源最大申請表示及初值確定。 2.設定系統(tǒng)提供資源初始狀況。 3.設定每次某個進程對各類資源的申請表示。4.編制
2、程序,依據(jù)銀行家算法,決定其申請是否得到滿足。②算法流程圖如下: 算法流程圖如下:③算法中用到的數(shù)據(jù)結(jié)構 算法中用到的數(shù)據(jù)結(jié)構說明 說明1. 可利用資源向量 Available ,它是一個含有 m 個元素的數(shù)組,其中的每 一個元素代表一類可利用的資源的數(shù)目,其初始值是系統(tǒng)中所配置的該類全部可用資源數(shù)目。其數(shù)值隨該類資源的分配和回收而動態(tài)地改變。如果 Available[j]=k,標是系統(tǒng)中現(xiàn)有 Rj 類資源 k 個。2. 最大需求矩陣
3、 P,這是一個 n×m 的矩陣,它定義了系統(tǒng)中 n 個進程中的每一個進程對 m 類資源的最大需求。如果 P(i,j)=k,表示進程 Pi 需要 Rj類資源的最大數(shù)目為 k。3. 分配矩陣 Allocation,這是一個 n×m 的矩陣,它定義了系統(tǒng)中的每類資源當前一分配到每一個進程的資源數(shù)。如果 Allocation(i,j)=k,表示進程 Pi當前已經(jīng)分到 Rj 類資源的數(shù)目為 k。Allocation i 表示進
4、程 Pi 的分配向量,有矩陣 Allocation 的第 i 行構成。4. 需求矩陣 Need,這是一個 n×m 的矩陣,用以表示每個進程還需要的各類資源的數(shù)目。如果 Need(i,j)=k,表示進程 Pi 還需要 Rj 類資源 k 個,才能完成其任務。Need i 表示進程 i 的需求向量,由矩陣 Need 的第 i 行構成。上述三個矩陣間存在關系:Need(i,j)=P(i,j)- Allocation(i,j) ;5.
5、Request i 是進程 Pi 的請求向量。Request i (j)=k 表示進程 Pi 請求分配 Rj 類資源 k 個。當 Pi 發(fā)出資源請求后,系統(tǒng)按下述步驟進行檢查:①.如果 Request i ≤Need,則轉(zhuǎn)向步驟 2;否則出錯。②如果 Request i ≤R,則轉(zhuǎn)向步驟 3;否則,表示系統(tǒng)中尚無足夠的資源滿足 Pi 的申請,Pi 必須等待。③系統(tǒng)試探性地把資源分配給進程 Pi,并修改下面數(shù)據(jù)結(jié)構中的數(shù)值:R = R -
6、 Request i Allocation I = Allocation I + Request i Need I = Need i - Request i④系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。 如果安全才正式將資源分配給進程 Pi,以完成本次分配;否則,將試探分配作廢,恢復原來的資源分配狀態(tài),讓進程 Pi 等待6. 主要的常量變量 主要的常量變量#define W 10 //最大進
7、程數(shù)W=10 #define R 20 //最大資源總數(shù)R=20 int AVAILABLE[R]; //可利用資源向量 int MAX[W][R]; //最大需求矩陣 int ALLOCATION[W][R]; //分配矩陣 int NEED[W][R]; //需求矩陣 int Request[R];
8、 //進程請求向量 void changdata(int k); //進程請求資源數(shù)據(jù)改變 int chksec(int s); //系統(tǒng)安全性的檢測7.主要模塊(函數(shù)和數(shù)據(jù)) 主要模塊(函數(shù)和數(shù)據(jù))void inputdata(); //數(shù)據(jù)輸入 void showdata(); //數(shù)據(jù)顯示 void changdata(int k); //進程請求資
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設計報告—銀行家算法
- 操作系統(tǒng)課程設計報告—銀行家算法
- 操作系統(tǒng)課程設計---銀行家算法報告
- 操作系統(tǒng)課程設計--銀行家算法
- 操作系統(tǒng)課程設計---銀行家算法
- 操作系統(tǒng)之銀行家算法檢測死鎖
- 操作系統(tǒng)課程設計銀行家算法
- 課程設計---銀行家算法實驗報告
- 操作系統(tǒng)課程設計--銀行家算法
- 操作系統(tǒng)課程設計(銀行家算法)
- 操作系統(tǒng)課程設計-銀行家算法
- 操作系統(tǒng)課程設計--銀行家算法
- 操作系統(tǒng)課程設計--銀行家算法
- 實驗二:銀行家算法實驗報告書
- 操作系統(tǒng)課程設計--銀行家算法 (3)
- 操作系統(tǒng)課程設計---銀行家算法 (2)
- 操作系統(tǒng)課程設計--銀行家算法 (2)
- 操作系統(tǒng)課程設計---模擬銀行家算法
- 操作系統(tǒng)課程設計---銀行家算法實現(xiàn)
- 操作系統(tǒng)課程設計報告---模擬實現(xiàn)銀行家算法
評論
0/150
提交評論