看板 Grad-ProbAsk 關於我們 聯絡資訊
想問一下觀念@@ 100台大OS有一題說,設計一個防race condition的方法,然後不能有polling 看板上解答是說: 這意思是,不能占用cpu time,也就是不能busy waiting 然後翻了一下洪逸筆記,洪逸說不使用busy waiting的方法就是signal(s),wait(s) 可是semaphore的wait(s) ,不是也是busy waiting?? wait(){ while(s<=0) do no-op; s=s-1; } 那為什麼說semaphore是不使用busy waiting的方法呢?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.66.184
yraid:可以用disable interrupt來實作 01/30 12:11
kiele:semaphore可以用spinlock或blocking的做法來定義,第一種會有 01/30 12:32
kiele:busy-loop 但block方式使用wating queue就不會有 01/30 12:32
gn123:了解! 感謝~~ 01/30 12:52