[理工] [OS] semaphore (bounded waiting)

作者: fornote (thisisfornote)   2016-12-11 16:31:46
http://i.imgur.com/80REHsS.jpg
想問一下
如果pi執行signal後
比pj更快執行wait(mutex)
pj無法進入C.S
這樣不就可能違反bounded waiting嗎?
作者: ken52011219 (呱)   2016-12-11 22:24:00
現行 os 系統關於假設性的問題基本上都沒有一定答案如同洪逸筆記上 bound waiting 是假設有 queue 滿足該項 , 但真的只能假設 queue 而已嗎 ? 絕對還有別種方式 去決定要怎麼排程 只是有太多種方法了就連恐龍本也只是概念式地稍微講解在能保證不會Stravation 的情況下 , 是否能讓優先度較高的再多跑幾次 (假設quantum 有限)有很多手段都可以達到此目的
作者: k2shouai (coding....)   2016-12-11 22:19:00
Bounded waiting不是只考慮使用同個semaphore的process嗎?
作者: kyuudonut (善良老百姓)   2016-12-11 21:35:00
這樣不是就代表這個設計沒有保證bounded waiting @@?
作者: k2shouai (coding....)   2016-12-11 20:26:00
假如發生你講那種情形就程式會有bug,但不是這個設計造成的啊
作者: newpuma (還很新)   2016-12-11 20:09:00
瞭解,有點像是排程的starvation問題了 (雖然bounded waiting也隱含這層意思)
作者: k2shouai (coding....)   2016-12-11 19:58:00
我說的是只有這二個process的情形
作者: kyuudonut (善良老百姓)   2016-12-11 20:03:00
@newpuma yes, 像是block和wake這兩個call有維持一個fifo queue@k2 如果CPU一直沒切給pj pi的確一直有可能一直跑下去?
作者: newpuma (還很新)   2016-12-11 19:56:00
原來如此...這樣說來用semaphore去設計臨界區間的進入區離開區還需要特別設計別的變數來保證bounded waiting嗎@@?
作者: kyuudonut (善良老百姓)   2016-12-11 19:43:00
有滿足阿 四個演算法都有另外設計變數來達成Bound waitingex. turn, flag...etc另外process synchronization本來就要考慮到scheduling
作者: newpuma (還很新)   2016-12-11 19:08:00
同步探討的bounded waiting並沒有把排程考慮進去吧!不然前面的臨界區間設計演算法都沒滿足bounded waiting了不是嗎?
作者: kyuudonut (善良老百姓)   2016-12-11 18:10:00
srmaphore 僅保證mutual exclusion 是否有bounded waiting要看實作https://goo.gl/LftxrI 這篇寫很好可以參考@k2 這要看scheduler怎麼排吧 pi還是有可能繼續等說錯 pj仍有可能繼續等 如果scheduler沒排到他
作者: fornote (thisisfornote)   2016-12-11 18:04:00
感謝
作者: newpuma (還很新)   2016-12-11 17:15:00
不可能
作者: fornote (thisisfornote)   2016-12-11 17:06:00
嗯這我明白 那有沒有可能pi一signal pi比pj更快執行wait(mux)
作者: k2shouai (coding....)   2016-12-11 17:13:00
那pj等於跟pi同時進,他搶輸pi就等pi singal就好,等一次而已。不然你pi signal前pj就在,pj一定會在wait
作者: fornote (thisisfornote)   2016-12-11 16:47:00
FIFO queue?
作者: k2shouai (coding....)   2016-12-11 16:58:00
pj已經卡在wait, pi一signal他就不會卡在wait。
作者: kyuudonut (善良老百姓)   2016-12-11 16:41:00
可以想像有個queue?
作者: aa06697 (todo se andarà)   2016-12-12 13:36:00
洪毅上課有說~ 看起來會不滿足bounded waiting 但這不是使用者要考量的 這必須是設計semaphore的設計者要考量的(最簡單可能就是用waiting queue) 所以我們是以使用者的角度來看他能否解決cs問題 就不須考慮此

Links booklink

Contact Us: admin [ a t ] ucptt.com