[理工] OS同步 disable interrupt 問題

作者: boy00114 (ponny)   2016-10-06 19:07:18
如這題
我知道disable interrupt 不適合用在多處理器上
但是A與B選項應該都不適合吧
A)若只disable first CPU,這樣第二顆CPU不是也可以去搶資源?
B)若讓其他cpu disable會造成效能降低
請問大大們有更好的解釋嗎?
謝謝!
http://i.imgur.com/zlV97P6.jpg
作者: ken52011219 (呱)   2016-10-08 00:12:00
這段感覺是讓 Interrupt 的指令強迫停留在某CPU @@
作者: kyuudonut (善良老百姓)   2016-10-07 22:34:00
linux可以disable單一cpu的interrupt的參考: https://goo.gl/WeSw4j
作者: ken52011219 (呱)   2016-10-07 14:06:00
稍微補充一下 Linux 通常使用 Sempahore(interrupt)以及 Spin Lock
作者: boy00114 (ponny)   2016-10-07 11:05:00
好的,如同題目所說這題主要是探討disable interrupt所造成的效能降低,所以最不恰當的應該要選b(因為效能降低
作者: ken52011219 (呱)   2016-10-07 10:02:00
沒錯 像是 Linux 以及 interprocceosr System 都是好久沒看筆記了 QQ 現在發現洪逸講的比想像中的多
作者: boy00114 (ponny)   2016-10-07 09:10:00
回樓上ken大http://i.imgur.com/97uWj0G.jpg老師有說要disable 所以CPU的interrupt 才可以防止所以題目這邊指的都是disable所有CPU的情況?
作者: aa06697 (todo se andarà)   2016-10-06 20:51:00
因為p1 p2 p3 使用同一個互斥資源的關係吧
作者: gigayaya (gigayaya)   2016-10-06 20:59:00
我的想法啦,首先:題目說目前就只有這三個process在run,而p1p2p3不會切換cpu去搶cpu,所以你a的問題不會發生,那這樣問題就是p1跟p2要做防止race condition,所以只要p1跟p2用disable interrupt就好了,(B)如果p2沒有disable interrupt的話,cpu可能途中被p1搶走而race condition抱歉想錯了,(B)最不適合的原因應該就是因為把disable interrupt用在multiprocessor上,相比起來(C)適合多了,所以最不適合的是(B)
作者: kyuudonut (善良老百姓)   2016-10-06 22:53:00
注意(A)後面的受詞 to synchronize "P1 and P2"(A)的卻會發生 race condition 但這不是(A)選項想問der
作者: ken52011219 (呱)   2016-10-07 00:12:00
關鍵點在 Disable interrupt 是呼叫 OS一個OS 控制多個CPU 因此我們通常不會在不同的CPU處理同步問題 因為如你所知 太耗CPU時間 減少CPU可用度而為何 A可以 就單純處理P1 P2 同步問題今天處理 P1 P2 的同步問題 代表 資源目前在processor1 的手上 而不再Process3所在的 Processor2因此使用 Disable interrupt 不會造成 Processor2的不便 反正沒資源Process 3還是要 wait講這麼多 忘記提最重要的點 Interrupt會造成多CPU停止 而不是只造成單一CPU 被intterupt更正一下 通常不會使用硬體去解決不同CPU的同步問題

Links booklink

Contact Us: admin [ a t ] ucptt.com