[理工] [OS] semaphore 些許疑問
想請問 semaphore 一些問題
就是當一堆人在 wait 某一個 semaphore 時,
一旦有人 signal,那會是誰先跑離 wait 呢?
我想得到的解決方式就是加一個 waiting queue 這樣
所以誰先 wait,之後 signal 便誰先解救
應該是這樣沒錯?
但這題: http://imgur.com/a/lkVWw
大家都在 wait 那邊 wait(s2)
那右邊的 signal 一旦 signal(s2),不就一堆 process 全部逃離 wait 了嗎 @@?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.251.85
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1474906437.A.108.html
推
09/27 00:24, , 1F
09/27 00:24, 1F
→
09/27 00:26, , 2F
09/27 00:26, 2F
應該說只要保證互斥就不會有 race condition 了吧?
→
09/27 00:28, , 3F
09/27 00:28, 3F
→
09/27 00:28, , 4F
09/27 00:28, 4F
→
09/27 00:30, , 5F
09/27 00:30, 5F
→
09/27 00:30, , 6F
09/27 00:30, 6F
洪逸關於這邊都直接帶過@@
→
09/27 00:34, , 7F
09/27 00:34, 7F
→
09/27 00:34, , 8F
09/27 00:34, 8F
ㄟ 我好像知道我糾結的點在哪惹 XDD
多謝討論
→
09/27 00:35, , 9F
09/27 00:35, 9F
→
09/27 00:35, , 10F
09/27 00:35, 10F
→
09/27 00:37, , 11F
09/27 00:37, 11F
要幫你砍掉嗎 XDD
推
09/27 00:39, , 12F
09/27 00:39, 12F
→
09/27 00:39, , 13F
09/27 00:39, 13F
→
09/27 01:05, , 14F
09/27 01:05, 14F
推
09/27 01:43, , 15F
09/27 01:43, 15F
→
09/27 01:43, , 16F
09/27 01:43, 16F
這我知道,但洪逸就是這部分講不多啊...
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 01:49:29
推
09/27 17:59, , 17F
09/27 17:59, 17F
→
09/27 17:59, , 18F
09/27 17:59, 18F
我覺得這段話有點問題,wait 是否被做成 atomic 應該也是要看OS怎麼設計吧?
但其中裡面 semaphore 值的操作是 atomic 是肯定的
http://stackoverflow.com/questions/13528860/semaphore-wait-and-signal
→
09/27 17:59, , 19F
09/27 17:59, 19F
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 19:35:54
推
09/27 20:21, , 20F
09/27 20:21, 20F