操作系統(tǒng)銀行家算法實(shí)驗(yàn)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)五 銀行家算法 銀行家算法一、實(shí)驗(yàn)?zāi)康暮鸵?一、實(shí)驗(yàn)?zāi)康暮鸵螈倮斫馑梨i概念,銀行家算法及安全檢測(cè)算法。②在 Linux 操作系統(tǒng)下用 C++進(jìn)行編程。③利用 C++設(shè)計(jì)實(shí)現(xiàn)銀行家算法的基本過(guò)程。 ④驗(yàn)證銀行家算法對(duì)于避免死鎖的作用。二、實(shí)驗(yàn)方法內(nèi)容 二、實(shí)驗(yàn)方法內(nèi)容①算法設(shè)計(jì)思路 算法設(shè)計(jì)思路1.設(shè)計(jì)進(jìn)程對(duì)各類資源最大申請(qǐng)表示及初值確定。 2.設(shè)定系統(tǒng)提供資源初始狀況。 3.設(shè)定每次某個(gè)進(jìn)程對(duì)各類資源的申請(qǐng)表示。4.編制

2、程序,依據(jù)銀行家算法,決定其申請(qǐng)是否得到滿足。②算法流程圖如下: 算法流程圖如下:③算法中用到的數(shù)據(jù)結(jié)構(gòu) 算法中用到的數(shù)據(jù)結(jié)構(gòu)說(shuō)明 說(shuō)明1. 可利用資源向量 Available ,它是一個(gè)含有 m 個(gè)元素的數(shù)組,其中的每 一個(gè)元素代表一類可利用的資源的數(shù)目,其初始值是系統(tǒng)中所配置的該類全部可用資源數(shù)目。其數(shù)值隨該類資源的分配和回收而動(dòng)態(tài)地改變。如果 Available[j]=k,標(biāo)是系統(tǒng)中現(xiàn)有 Rj 類資源 k 個(gè)。2. 最大需求矩陣

3、 P,這是一個(gè) n×m 的矩陣,它定義了系統(tǒng)中 n 個(gè)進(jìn)程中的每一個(gè)進(jìn)程對(duì) m 類資源的最大需求。如果 P(i,j)=k,表示進(jìn)程 Pi 需要 Rj類資源的最大數(shù)目為 k。3. 分配矩陣 Allocation,這是一個(gè) n×m 的矩陣,它定義了系統(tǒng)中的每類資源當(dāng)前一分配到每一個(gè)進(jìn)程的資源數(shù)。如果 Allocation(i,j)=k,表示進(jìn)程 Pi當(dāng)前已經(jīng)分到 Rj 類資源的數(shù)目為 k。Allocation i 表示進(jìn)

4、程 Pi 的分配向量,有矩陣 Allocation 的第 i 行構(gòu)成。4. 需求矩陣 Need,這是一個(gè) n×m 的矩陣,用以表示每個(gè)進(jìn)程還需要的各類資源的數(shù)目。如果 Need(i,j)=k,表示進(jìn)程 Pi 還需要 Rj 類資源 k 個(gè),才能完成其任務(wù)。Need i 表示進(jìn)程 i 的需求向量,由矩陣 Need 的第 i 行構(gòu)成。上述三個(gè)矩陣間存在關(guān)系:Need(i,j)=P(i,j)- Allocation(i,j) ;5.

5、Request i 是進(jìn)程 Pi 的請(qǐng)求向量。Request i (j)=k 表示進(jìn)程 Pi 請(qǐng)求分配 Rj 類資源 k 個(gè)。當(dāng) Pi 發(fā)出資源請(qǐng)求后,系統(tǒng)按下述步驟進(jìn)行檢查:①.如果 Request i ≤Need,則轉(zhuǎn)向步驟 2;否則出錯(cuò)。②如果 Request i ≤R,則轉(zhuǎn)向步驟 3;否則,表示系統(tǒng)中尚無(wú)足夠的資源滿足 Pi 的申請(qǐng),Pi 必須等待。③系統(tǒng)試探性地把資源分配給進(jìn)程 Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(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)。 如果安全才正式將資源分配給進(jìn)程 Pi,以完成本次分配;否則,將試探分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài),讓進(jìn)程 Pi 等待6. 主要的常量變量 主要的常量變量#define W 10 //最大進(jìn)

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、 //進(jìn)程請(qǐng)求向量 void changdata(int k); //進(jìn)程請(qǐng)求資源數(shù)據(jù)改變 int chksec(int s); //系統(tǒng)安全性的檢測(cè)7.主要模塊(函數(shù)和數(shù)據(jù)) 主要模塊(函數(shù)和數(shù)據(jù))void inputdata(); //數(shù)據(jù)輸入 void showdata(); //數(shù)據(jù)顯示 void changdata(int k); //進(jìn)程請(qǐng)求資

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論