推 aa06697: 因為p1 p2 p3 使用同一個互斥資源的關係吧 10/06 20:51
推 gigayaya: 我的想法啦,首先:題目說目前就只有這三個process在run 10/06 20:59
→ gigayaya: ,而p1p2p3不會切換cpu去搶cpu,所以你a的問題不會發生 10/06 20:59
→ gigayaya: ,那這樣問題就是p1跟p2要做防止race condition,所以只 10/06 20:59
→ gigayaya: 要p1跟p2用disable interrupt就好了,(B)如果p2沒有disa 10/06 20:59
→ gigayaya: ble interrupt的話,cpu可能途中被p1搶走而race conditi 10/06 20:59
→ gigayaya: on 10/06 20:59
推 gigayaya: 抱歉想錯了,(B)最不適合的原因應該就是因為把disable i 10/06 21:10
→ gigayaya: nterrupt用在multiprocessor上,相比起來(C)適合多了, 10/06 21:10
→ gigayaya: 所以最不適合的是(B) 10/06 21:10
推 kyuudonut: 注意(A)後面的受詞 to synchronize "P1 and P2" 10/06 22:53
→ kyuudonut: (A)的卻會發生 race condition 但這不是(A)選項想問der 10/06 22:54
推 ken52011219: 關鍵點在 Disable interrupt 是呼叫 OS 10/07 00:12
→ ken52011219: 一個OS 控制多個CPU 因此我們通常不會在不同的CPU處 10/07 00:13
→ ken52011219: 理同步問題 因為如你所知 太耗CPU時間 減少CPU可用度 10/07 00:14
→ ken52011219: 而為何 A可以 就單純處理P1 P2 同步問題 10/07 00:15
→ ken52011219: 今天處理 P1 P2 的同步問題 代表 資源目前在processo 10/07 00:16
→ ken52011219: r1 的手上 而不再Process3所在的 Processor2 10/07 00:17
→ ken52011219: 因此使用 Disable interrupt 不會造成 Processor2的 10/07 00:18
→ ken52011219: 不便 反正沒資源Process 3還是要 wait 10/07 00:18
推 ken52011219: 講這麼多 忘記提最重要的點 Interrupt會造成多CPU停 10/07 00:21
→ ken52011219: 止 而不是只造成單一CPU 被intterupt 10/07 00:21
推 ken52011219: 更正一下 通常不會使用硬體去解決不同CPU的同步問題 10/07 00:25
→ boy00114: 老師有說要disable 所以CPU的interrupt 才可以防止所 10/07 09:11
→ boy00114: 以題目這邊指的都是disable所有CPU的情況? 10/07 09:11
推 ken52011219: 沒錯 像是 Linux 以及 interprocceosr System 都是 10/07 10:02
→ ken52011219: 好久沒看筆記了 QQ 現在發現洪逸講的比想像中的多 10/07 10:12
→ boy00114: 好的,如同題目所說這題主要是探討disable interrupt 10/07 11:05
→ boy00114: 所造成的效能降低,所以最不恰當的應該要選b(因為效能 10/07 11:05
→ boy00114: 降低 10/07 11:05
→ ken52011219: 稍微補充一下 Linux 通常使用 Sempahore(interrupt) 10/07 14:06
→ ken52011219: 以及 Spin Lock 10/07 14:07
推 kyuudonut: linux可以disable單一cpu的interrupt的 10/07 22:34
→ ken52011219: 這段感覺是讓 Interrupt 的指令強迫停留在某CPU @@ 10/08 00:12