公務人員特種考試計算機大意104 年第 17 題單選題
下列何者為死結(Dead Lock)的預防方式?
A互斥
B允許搶奪資源正確答案
C循環式等候
D持有並等候
B正確答案
死結四條件:互斥、持有並等候、不可搶奪、循環等候,預防就是破壞其中一個條件。
為什麼答案是 B
允許搶奪資源 = 破壞「不可搶奪 (No Preemption)」條件。當行程無法取得資源時,強制釋放其已持有的資源,可有效預防死結。
載入中…
完整詳解
Pro · 無限重點 死結四條件:互斥、持有並等候、不可搶奪、循環等候,預防就是破壞其中一個條件。
死結預防口訣:破壞四條件。題目問「預防方式」= 反向破壞。允許搶奪 = 破壞「不可搶奪」條件。
逐選項分析
A✕ 陷阱
互斥 (Mutual Exclusion) 本身是死結的「必要條件」之一,不是預防方式。要預防反而要想辦法讓資源可共享。
B✓ 正確
允許搶奪資源 = 破壞「不可搶奪 (No Preemption)」條件。當行程無法取得資源時,強制釋放其已持有的資源,可有效預防死結。
C✕ 陷阱
循環式等候 (Circular Wait) 本身就是死結的成因之一,不是預防。預防方式應為「破壞循環等候」,例如對資源編號後依序申請。
D✕ 陷阱
持有並等候 (Hold and Wait) 也是死結四大必要條件之一,不是預防方式。預防方式應為「要求一次申請所有資源」或「申請前先釋放」。
死結四條件 vs 預防策略
| 死結必要條件 | 預防方式 | 實作範例 |
|---|
| 互斥 Mutual Exclusion | 使資源可共享 | 唯讀檔案可同時存取 |
| 持有並等候 Hold & Wait | 一次申請全部資源 | 開始前就配齊 |
| 不可搶奪 No Preemption | 允許搶奪資源 ✅ | 搶回已持有資源 |
| 循環等候 Circular Wait | 資源編號依序申請 | 只能由小到大申請 |
本題最大陷阱是把「死結成因」當成「預防方式」。A 互斥、C 循環等候、D 持有並等候 都是 Coffman 提出的死結四大必要條件,考生若不熟會誤選。預防方式必須是「破壞」這些條件的動作,只有 B 允許搶奪符合。