13. 死結 (deadlock) 發生的四個必要條件是 mutual exclusion、hold-and-wait、non-preemption、circular waiting。假設有一水管 其孔徑只能容許一隻松鼠通過,松鼠們想用此水管做為松鼠往來河流兩岸的橋樑,但因多數松鼠並不會倒退走,過河時有可能會發生 deadlock。對此,松鼠們決定教導所有松鼠都學會後退的技能,以便於水管中相遇時有一邊可以暫時退出。請問此方法是「直接」破解了四個必要條件中的那一個?
(A) mutual exclusion
(B) hold-and-wait
(C) non-preemption
(D) circular waiting

答案:登入後查看
統計: A(4), B(12), C(12), D(5), E(0) #3456959

詳解 (共 2 筆)

#6474789
【正解】(C) non-preempt...
(共 349 字,隱藏中)
前往觀看
4
0
#7323051
  • 死結的四個必要條件:

    1. Mutual exclusion:資源一次只能被一個程序使用。

    2. Hold-and-wait:持有資源的程序同時等待其他資源。

    3. Non-preemption:資源不能被強制奪走,只能由持有者自願釋放。

    4. Circular waiting:形成環狀等待。

  • 在松鼠的例子中,水管只能容納一隻松鼠,這對應 mutual exclusion

  • 松鼠在水管中相遇時,若雙方都不退讓,就會形成 circular waiting

  • 原本松鼠不會倒退,代表資源(通道)不能被強制釋放,符合 non-preemption

  • 現在松鼠學會後退,表示資源可以被「強制釋放」,直接破除了 non-preemption 這個條件。

1
0

私人筆記 (共 1 筆)

私人筆記#7098272
未解鎖
死結 (deadlock) 發生的四...
(共 316 字,隱藏中)
前往觀看
0
1