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
統計: A(4), B(12), C(12), D(5), E(0) #3456959
詳解 (共 2 筆)
#7323051
-
死結的四個必要條件:
-
Mutual exclusion:資源一次只能被一個程序使用。
-
Hold-and-wait:持有資源的程序同時等待其他資源。
-
Non-preemption:資源不能被強制奪走,只能由持有者自願釋放。
-
Circular waiting:形成環狀等待。
-
-
在松鼠的例子中,水管只能容納一隻松鼠,這對應 mutual exclusion。
-
松鼠在水管中相遇時,若雙方都不退讓,就會形成 circular waiting。
-
原本松鼠不會倒退,代表資源(通道)不能被強制釋放,符合 non-preemption。
-
現在松鼠學會後退,表示資源可以被「強制釋放」,直接破除了 non-preemption 這個條件。
1
0