【操作系統】銀行家算法 例題

系統有同類資源10個,進程P1,P2,P3需要該類資源的最大數量分別爲8,6,7。他們使用資源的次序和數量如下圖所示。

次序 進程 申請量 次序 進程 申請量
1 P1 3 5 P2 2
2 P2 2 6 P1 3
3 P3 4 7 P3 3
4 P1 2 8 P2 2

 ⑴ 試給出採用銀行家算法分配資源時,進行第5次分配後各進程的狀態及各進程佔用資源情況。

 ⑵ 在以後的申請中,那次的申請可以得到最先滿足?給出一個進程完成序列。

 

解:

(1)計算第5次分配後進程的狀態和佔用資源情況

  1. P1申請3個,可以滿足,系統還剩7個;
  2. P2申請2個,可以滿足,(因爲系統的7個可以使P2運行完)系統還剩5個;
  3. P3申請4個,若滿足它的請求,可能使以後的任何進程都不能運行完,故P3等待;
  4. P1申請2個,滿足,(系統還剩5個可以滿足P1的最大請求),系統還剩3個;
  5. P2申請2個,不能滿足,等待。

此時系統的分配情況如下:

P1分配5個後正在運行;P2分配2個後等待分配2個;P3等待分配4個;系統還剩3個

 

(2)

  1.  P1接着運行,P1申請3個,可以滿足,P1運行完成後釋放資源,使系統資源數量變爲8個;
  2. 首先將P3喚醒,滿足它的4個請求資源,系統還剩4個;
  3. 喚醒P2,滿足它的2個資源,系統還剩2個;
  4. P3申請3個,不能滿足,等待;
  5. P2申請2個,系統滿足它;
  6. P2接着運行,P2完成後釋放資源,使系統資源變爲6個;
  7. 系統喚醒P3,滿足它的3個資源請求,最終P3完成,釋放資源,使資源數量恢復爲10個

找到的進程完成序列爲{P1,P2,P3}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章