[理工] [OS] non-busy waiting semaphore
Hi 想請問一下
當初洪逸在教 號誌製作 的時候
non-busy 配 cs design,是直接用 entry section & exit section 帶過
後面提到 "busy waiting 是否可以完全避免" ,
直接說 entry section 存在 busy waiting
但不是 entry section 也可以使用 sys call 製作嗎?
還是老師當時有什麼特別的解釋@@
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.233.98
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1474879556.A.F6F.html
推
09/26 20:38, , 1F
09/26 20:38, 1F
→
09/26 20:38, , 2F
09/26 20:38, 2F
→
09/26 20:38, , 3F
09/26 20:38, 3F
可是,他不是用 block 及 wakeup(這個不確定) 的 sys. call 製作嗎?
應該不是 disable interrupt 的指令
推
09/27 00:19, , 4F
09/27 00:19, 4F
筆記支援: http://imgur.com/a/J9Phf
我記得 CS Design 就是拿來取代 interrupt 的 solution?
應該不會 CS Design 裡的 entry section 反而用 interrupt 去弄吧
推
09/27 00:39, , 5F
09/27 00:39, 5F
SW 和 HW 好像都是拿來做 busy waiting 的方法?
推
09/27 00:44, , 6F
09/27 00:44, 6F
請問你指哪裡皆可呢
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 00:50:01
推
09/27 00:49, , 7F
09/27 00:49, 7F
→
09/27 00:50, , 8F
09/27 00:50, 8F
→
09/27 00:50, , 9F
09/27 00:50, 9F
推
09/27 00:53, , 10F
09/27 00:53, 10F
→
09/27 00:55, , 11F
09/27 00:55, 11F
→
09/27 00:57, , 12F
09/27 00:57, 12F
→
09/27 00:57, , 13F
09/27 00:57, 13F
這邊我想要整理一下 自己也一直搞混
這邊的問題應該分為 (1) semaphore 的 wait 及 signal 的製作方式
(2) semaphore值 的互斥控制
其中 (1) 就是你貼的圖(筆記也有),他透過這兩個 sys call 去實作 wait 及 signal
(non-busy waiting),也可以透過 busy waiting 的方式去做。
(2) 就是單純的互斥控制,可以透過 disable interrupt 及 CS Design 去實作
其中 CS Design 可以有 busy waiting 及 non-busy waiting。
打到這邊,不知道我的理解有沒有問題? 而我這篇主要的問題點是 (2)
因為洪逸自己上 CS design 時就有提到 non-busy waiting 的實作方法
推
09/27 00:59, , 14F
09/27 00:59, 14F
→
09/27 00:59, , 15F
09/27 00:59, 15F
→
09/27 01:02, , 16F
09/27 01:02, 16F
→
09/27 01:02, , 17F
09/27 01:02, 17F
→
09/27 01:04, , 18F
09/27 01:04, 18F
→
09/27 01:04, , 19F
09/27 01:04, 19F
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 01:06:21
→
09/27 01:13, , 20F
09/27 01:13, 20F
→
09/27 01:13, , 21F
09/27 01:13, 21F
推
09/27 01:17, , 22F
09/27 01:17, 22F
→
09/27 01:17, , 23F
09/27 01:17, 23F
→
09/27 01:17, , 24F
09/27 01:17, 24F
→
09/27 01:17, , 25F
09/27 01:17, 25F
→
09/27 01:17, , 26F
09/27 01:17, 26F
我覺得有可能是這樣
推
09/27 01:20, , 27F
09/27 01:20, 27F
→
09/27 01:20, , 28F
09/27 01:20, 28F
是指我嗎? @@
推
09/27 09:29, , 29F
09/27 09:29, 29F
→
09/27 09:29, , 30F
09/27 09:29, 30F
→
09/27 09:36, , 31F
09/27 09:36, 31F
應該是筆誤,會有問題的是 multiprocessor 沒錯
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 11:06:51