第三章 銀行家算法

1)銀行家算法中的數(shù)據(jù)結構

(1)各類可利用資源的數(shù)量

u向量Available:(i1,i2,…,im),含m個元素,每個元素代表一類可利用的資源數(shù)目。

u動態(tài)變化的,初始值是系統(tǒng)配置的該類資源的全部數(shù)目,值隨資源的分配與回收而動態(tài)的改變。

u實現(xiàn):一維數(shù)組。Available【j】=K,表示系統(tǒng)中Rj類資源現(xiàn)有可用數(shù)量為K個。

(2)每個進程對每類資源的需求

最大需求、已獲得的、還需要的

v最大需求矩陣Max

vn*m,系統(tǒng)中n個進程中每個進程分別對m類資源的最大需求。

v取值:根據(jù)進程需求賦初始值。

v實現(xiàn):二維數(shù)組。Max【i,j】=K,表示進程 i

需要Rj類資源的最大數(shù)目為K。


算法過程:

就是對各進程的Request向量及資源數(shù)量進行一系列判斷及值操作。

進程Pi發(fā)出資源請求后,系統(tǒng)按下述步驟進行檢查:

首先是兩個基本判斷:

(1)IF Requesti[j]<= Need[i,j]

? THEN轉向步驟2;

? ELSE認為出錯,所需資源數(shù)超過宣布的最大值(自我矛盾)

(2)IF Requesti[j]<= Available[j]

? THEN轉向步驟3;

? ELSE表示尚無足夠資源,Pi需等待(現(xiàn)實不滿足)

如果上面兩步判斷都通過了,進入實質的資源分析

(3)系統(tǒng)試探著把資源分配給進程Pi

,并修改相應數(shù)據(jù)結構的值(假設性操作):

???? Available【j】? =

???? Allocation【i,j】=

???? Need【i,j】=

(4)系統(tǒng)執(zhí)行安全性算法,判斷新的資源分配狀態(tài)是否是安全的。

? 即:找一個安全序列,使這些進程按順序執(zhí)行完)如果能夠找到,則將假設操作真正實施完成資源分配。

3)安全性算法

(1)需要一些記錄信息的數(shù)據(jù)結構,設置兩個向量:

v工作向量work

算法開始時work=Available;

系統(tǒng)找安全序列的過程需要不斷判斷和修改當前資源數(shù)量,不能直接修改原始數(shù)據(jù)記錄Aailable。

v標志向量Finish

表示每個進程是否有足夠的資源使之運行完成。開始時所以進程都設置初值Finish[i]:=false;

找安全序列的過程相當于使所有Finish[i]:=true。

(2)找安全序列的過程

? 從Finish[i] = false 的進程集合中找一個進程

? IFNeed[i,j] <= work[j]

? THEN? 執(zhí)行步驟 a;

? ELSE? 執(zhí)行步驟 b;

? a)假設Pi獲得資源順利執(zhí)行完,釋放出分配給它的資源,修改相應的值:

????work【j】? = work【i】+Allocation【i,j】;

????Finish【i】= true;

????goto step (2);//返回去繼續(xù)找下一個進程。

? b)當算法不再在(2)、a)步間循環(huán)找進程,到達本步時,若所有Finish[i]=true都滿足,則表示所有進程都按某個順序執(zhí)行完了,系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)當前所處的資源分配狀態(tài)是不安全狀態(tài)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 關于死鎖 多道程序系統(tǒng)借助并發(fā)執(zhí)行改善資源利用率,提高系統(tǒng)吞吐量,但可能發(fā)生一種危險——死鎖。 死鎖(Deadlo...
    盆栽木只閱讀 1,214評論 0 0
  • 系統(tǒng)安全狀態(tài)的定義 1.安全狀態(tài) 在避免死鎖的方法中,允許進程動態(tài)地申請資源,但系統(tǒng)在進行資源分配之前,應先計算此...
    haifengmay閱讀 3,882評論 1 8
  • 死鎖 在了解銀行家算法前,有必要了解一下死鎖。因為銀行家算法是用于避免死鎖的。 什么是死鎖? 死鎖是指兩個或兩個以...
    tandeneck閱讀 1,287評論 0 1
  • 一點見解: Android事件分發(fā)機制(一) - 基本概念解釋一點見解: Android事件分發(fā)機制(二) - 分...
    AssIstne閱讀 2,404評論 0 10
  • 城市故事|不愿錯過的愛情 人生就像旅行,再美的風景,一旦錯過,就再也回不到那時遇見的美麗,但我留住了彼此幸福的那一...
    普洱生活事兒閱讀 403評論 0 0

友情鏈接更多精彩內容