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

楼主: fornote (thisisfornote)   2016-12-11 16:31:46


想问一下
如果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