47 何謂"持有並等待"?
(A) 程序持有某資源後必須等待
(B) 程序在等待時必須持有資源
(C) 程序持有至少一個資源並等待其他資源
(D) 程序必須等待所有資源都可用

答案:登入後查看
統計: A(2), B(0), C(6), D(0), E(0) #3399894

詳解 (共 2 筆)

#7319164

【第一步:找關鍵字】

持有並等待(Hold and Wait)
→ Hold(持有)+ Wait(等待)

? 重點:

  • 已經拿著資源

  • 同時還在等別的資源

關鍵觀念:
? 這是「死結(Deadlock)」的四大條件之一

【第二步:白話翻譯】

這題在問:
?「一個程式已經拿了一些資源,但還不放手,又在等其他資源,這種情況叫什麼?」

【第三步:解題思路】

這題在考什麼觀念?

? Deadlock(死結)的必要條件之一:Hold and Wait

解題步驟

  1. 拆解英文:

  • Hold → 手上有資源

  • Wait → 還在等其他資源

  1. 組合意思:

?「一邊拿著,一邊等」

  1. 找最符合的選項
    → 必須同時包含「已持有 + 還在等」

原理與規則

Deadlock(死結)是什麼?
→ 多個程序互相卡住,誰也動不了

死結四大條件(必背):

  1. 互斥(Mutual Exclusion)

  2. 持有並等待(Hold and Wait)

  3. 不可搶奪(No Preemption)

  4. 循環等待(Circular Wait)

生活比喻:

兩個人吃飯:

  • A 拿了筷子,等碗

  • B 拿了碗,等筷子

? 兩個人都「持有並等待」
? 結果卡住 → 死結

【第四步:選項分析】

  • (A) 程序持有某資源後必須等待
    ❌ 錯
    → 太模糊,沒有說「還在等其他資源」

  • (B) 程序在等待時必須持有資源
    ❌ 錯
    → 這只是描述一部分,不夠完整

  • (C) 程序持有至少一個資源並等待其他資源
    ✅ 正確
    → 完整符合「Hold + Wait」

  • (D) 程序必須等待所有資源都可用
    ❌ 錯
    → 這比較像「避免死結的方法」,不是定義

【觀念補充與延伸】

核心觀念定位

這題屬於:
? 作業系統 → 死結(Deadlock)
? 超高頻必考題

法條或定義

Hold and Wait(持有並等待)
→ 程序在持有至少一個資源的同時,等待其他資源

白話:
?「手上拿著,還想再拿」

觸類旁通(舉一反三)

對比概念(避免死結):

  • 一次拿齊所有資源
    ? 就不會發生 Hold and Wait

變化題型:

  1. 問四大條件是哪一個

  2. 問如何避免 deadlock

  3. 給情境判斷是否符合 Hold and Wait

【記憶口訣】

?「拿著不放,還要再要」

或:

?「一手抓、一手等 → 死結會發生」

【常見陷阱】

學生最容易搞混的地方

  • 只看到「等待」就選

  • 忘記一定要「已經持有」

心理盲點

看到 wait 就急著選
? 但題目重點是「同時發生」

避坑指南

解題檢查:

✔ 有沒有「已經持有」
✔ 有沒有「還在等待」

? 兩個都要有才是正解

0
0
#6786476
1. 題目解析 題目詢問「持有並等待」的...
(共 872 字,隱藏中)
前往觀看
0
0