問題: 在銀行家演算法中,若出現下述資源分配情況,試問:
| Process | Allocation | Need | Available |
|---|---|---|---|
| P0 | 0032 | 0012 | 1622 |
| P1 | 1000 | 1750 | |
| P2 | 1354 | 2356 | |
| P3 | 0332 | 0652 | |
| P4 | 0014 | 0656 |
(1)該狀態是否安全?
(2)若行程P2提出請求Request(1,2,2,2)后,系統能否將資源分配給它?
決議:
(1)對該狀態進行安全性檢查:
| Process | Work | Need | Allocation | Work+Allocation | Finish |
|---|---|---|---|---|---|
| A B C D | A B C D | A B C D | A B C D | ||
| P0 | 1 6 2 2 | 0 0 1 2 | 0 0 3 2 | 1 6 5 4 | true |
| P3 | 1 6 5 4 | 0 6 5 2 | 0 3 3 2 | 1 9 8 6 | true |
| P1 | 1 9 8 6 | 1 7 5 0 | 1 0 0 0 | 2 9 8 6 | true |
| P2 | 2 9 8 6 | 2 3 5 6 | 1 3 5 4 | 3 12 13 10 | true |
| P4 | 3 12 13 10 | 0 6 5 6 | 0 0 1 4 | 3 12 14 14 | true |
由安全性檢查得知,可以找到一個安全序列{P0、P3、P1、P2、P4},因此系統是安全的,
(2)P2提出Request(1,2,2,2),系統按銀行家演算法進行檢查:Request(1,2,2,2) ≤ Need(2,3,5,6),P2請求是合理的;
Request(1,2,2,2)≤Available(1,6,2,2),P2請求是可以滿足的;
系統暫時先為行程P2試行分配資源,并修改有關的確資料,如下圖所示:
| Process | Allocation | Need | Available |
|---|---|---|---|
| P0 | 0032 | 0012 | 0400 |
| P1 | 1000 | 1750 | |
| P2 | 2576 | 1134 | |
| P3 | 0332 | 0652 | |
| P4 | 0014 | 0656 |
再利用安全性演算法檢查系統是否安全,可利用資源Available(0,4,0,0)已不能滿足任何行程的需要,故系統進入不安全狀態,此時系統不能將資源分配給P2,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241470.html
標籤:其他
上一篇:資訊安全實踐Lab2-CSS
