[理工] 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