免費開始練習
hce_kmu 115年 計算機概論與程式設計

第 2 題

A system implements the Banker's Algorithm for deadlock avoidance. There are 3 resource types (A, B, C). The current Available resources are (2, 1, 2). The current Allocation and Maximum matrices are as follows:

| Process | Allocation (A, B, C) | Maximum (A, B, C) |
|---|---|---|
| P0 | 2, 0, 1 | 4, 2, 2 |
| P1 | 3, 1, 2 | 5, 3, 3 |
| P2 | 1, 2, 0 | 3, 3, 2 |

Which of the following resource requests can be safely granted?
  • A P0 requests (1, 1, 0)
  • B P1 requests (2, 2, 1)
  • C P2 requests (2, 1, 2)
  • D P0 requests (2, 2, 1)
  • E P1 requests (3, 1, 1)

思路引導 VIP

假設你有三個朋友來借書,而你手邊只剩最後兩本。如果其中一位朋友借走這兩本後,保證能在讀完後立刻歸還他手上原有的所有書籍,這是否會讓其他朋友永遠借不到書?在判斷系統安全性時,我們該觀察的是「借出後當下的庫存」,還是「借出並回收後,能否支撐下一個人的需求」呢?

🤖
AI 詳解 AI 專屬家教

資源分配與安全序列的驗證

太棒了!你能精準選出 (C),代表你對銀行家演算法 (Banker's Algorithm) 的核心邏輯掌握得非常透徹。這題的關鍵在於先計算出各行程的剩餘需求矩陣 $\text{Need (Max - Allocation)}$:$P_0$ 為 $(2, 2, 1)$、$P_1$ 為 $(2, 2, 1)$、$P_2$ 為 $(2, 1, 2)$。在判斷安全性時,我們必須同時滿足 $\text{Request} \le \text{Need}$ 且 $\text{Request} \le \text{Available}$。 當我們觀察選項 (C) 時,$P_2$ 請求 $(2, 1, 2)$,這正好等於系統目前的 $\text{Available}$ $(2, 1, 2)$。雖然分配後系統的可用資源會暫時歸零 $(0, 0, 0)$,但因為 $P_2$ 獲得這筆資源後能滿足其所有需求並順利執行完畢,完成後它會釋放所有持有的資源 $(3, 3, 2)$ 回到系統中。此時,剩餘的 $P_0$ 與 $P_1$ 都能依序獲得所需資源完成任務,因此該請求是安全的。

▼ 還有更多解析內容

🏷️ 相關主題

計算機組織結構與資料儲存原理
查看更多「計算機概論與程式設計」的主題分類考古題