国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>操作系統(tǒng)基礎(chǔ)知識(shí)>

    操作系統(tǒng)死鎖銀行家算法

    時(shí)間: 佳洲1085 分享

      操作系統(tǒng)中死鎖是可以通過(guò)銀行家算法避免的。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)的死鎖銀行家算法的相關(guān)知識(shí),希望對(duì)大家有幫助!

      操作系統(tǒng)死鎖銀行家算法詳解

      死鎖既然不好,我們就可以利用銀行家算法避免死鎖。

      1.銀行家算法中的數(shù)據(jù)結(jié)構(gòu)

      (1) 可利用資源向量Available。這是一個(gè)含有m個(gè)元素的數(shù)組,其中的每一個(gè)元素代表一類(lèi)可利用的資源數(shù)目,其初始值是系統(tǒng)中所配置的該類(lèi)全部可用資源的數(shù)目,其數(shù)值隨該類(lèi)資源的分配和回收而動(dòng)態(tài)地改變。如果Available[j]=K,則表示系統(tǒng)中現(xiàn)有Rj類(lèi)資源K個(gè)。

      (2) 最大需求矩陣Max。這是一個(gè)n×m的矩陣,它定義了系統(tǒng)中n個(gè)進(jìn)程中的每一個(gè)進(jìn)程對(duì)m類(lèi)資源的最大需求。如果Max[i,j]=K,則表示進(jìn)程i需要Rj類(lèi)資源的最大數(shù)目為K。

      (3) 分配矩陣Allocation。這也是一個(gè)n×m的矩陣,它定義了系統(tǒng)中每一類(lèi)資源當(dāng)前已分配給每一進(jìn)程的資源數(shù)。如果Allocation[i,j]=K,則表示進(jìn)程i當(dāng)前已分得R j類(lèi)資源的數(shù)目為K。

      (4) 需求矩陣Need。這也是一個(gè)n×m的矩陣,用以表示每一個(gè)進(jìn)程尚需的各類(lèi)資源數(shù)。如果Need[i,j]=K,則表示進(jìn)程i還需要R j類(lèi)資源K個(gè),方能完成其任務(wù)。

      上述三個(gè)矩陣間存在下述關(guān)系:

      Need[i, j]=Max[i, j]-Allocation[i, j]

      2.銀行家算法

      設(shè)Request i是進(jìn)程Pi的請(qǐng)求向量,如果Request i[j]=K,表示進(jìn)程P i需要K個(gè)R j類(lèi)型的資源。當(dāng)P i發(fā)出資源請(qǐng)求后,系統(tǒng)按下述步驟進(jìn)行檢查:

      (1) 如果Request i[j]≤Need[i,j],便轉(zhuǎn)向步驟(2);否則認(rèn)為出錯(cuò),因?yàn)樗枰馁Y源數(shù)已超過(guò)它所宣布的最大值。

      (2) 如果Request i[j]≤Available[j],便轉(zhuǎn)向步驟(3);否則,表示尚無(wú)足夠資源,Pi須等待。

      (3) 系統(tǒng)試探著把資源分配給進(jìn)程P i,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值:

      Available[j]:= Available[j]-Request i[j];

      Allocation[i,j]:= Allocation[i,j]+Request i[j];

      Need[i,j]:= Need[i,j]-Request i[j];

      (4) 系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后系統(tǒng)是否處于安全狀態(tài)。若安全,才正式將資源分配給進(jìn)程Pi,以完成本次分配;否則,將本次的試探分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài),讓進(jìn)程Pi等待。

      3.安全性算法

      系統(tǒng)所執(zhí)行的安全性算法可描述如下:

      (1) 設(shè)置兩個(gè)向量:

     ?、?工作向量Work,它表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類(lèi)資源數(shù)目,它含有m個(gè)元素,在執(zhí)行安全算法開(kāi)始時(shí),Work:=Available。

     ?、?Finish,它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。開(kāi)始時(shí)先做Finish[i]:=false;當(dāng)有足夠資源分配給進(jìn)程時(shí),再令Finish[i]:=true。

      (2) 從進(jìn)程集合中找到一個(gè)能滿(mǎn)足下述條件的進(jìn)程:

      ① Finish[i]=false;

     ?、?Need[i,j]≤Work[j];若找到,執(zhí)行步驟(3),否則,執(zhí)行步驟(4)。

      (3) 當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:

      Work[j]:= Work[j]+Allocation[i,j];

      Finish[i]:=true;

      go to step (2);

      (4) 如果所有進(jìn)程的Finish[i]=true都滿(mǎn)足,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。

    操作系統(tǒng)死鎖銀行家算法

    操作系統(tǒng)中死鎖是可以通過(guò)銀行家算法避免的。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)的死鎖銀行家算法的相關(guān)知識(shí),希望對(duì)大家有幫助! 操作系統(tǒng)死鎖銀行家算法詳解 死鎖既然不好,我們就可以利用銀行家算法避免死鎖。 1.銀行家算法中的數(shù)
    推薦度:
    點(diǎn)擊下載文檔文檔為doc格式
    3626639