[理工] semaphore用在c.s. design

作者: fuork888888 (willaimchen)   2016-11-03 17:04:44
已知c.s. design需滿足mutual exclusion,progress,bounded-waiting
但使用semaphore的signal()後
所有wait()的process都可以競爭
這樣一來不就有process可能starvation而不滿足bounded-waiting嗎?
我所知道的
wait(s)
{while s>=0;
s
作者: ken52011219 (呱)   2016-11-03 18:05:00
Process 都有先來後到的順序 端看CPU Scheduler怎麼決定單CPU而言 複數以上Process 會先將process 拉進S -> list 後block() 依照給的的Schedule 來wakeup若以busy waiting 來看 代表不會將此Procrss停止以單CPU的角度來看 也不會有其他的process被執行在恐龍本中 C.S Design 的作法被概念式的帶過反而是以interrupt 的Semaphore實作為主所以我覺得 C.S Design 感覺像是僅限定2個 process@@2個以上的process 就會冒出bug來了剛剛稍微看一下洪逸的筆記 它也是假設bound waiting有Queue使Process 依序排列補充關於 NON-BUSY WAITING 也是有Starvation 的問題假如Schedule 是使用LIFO了話就有 這是恐龍本提到的

Links booklink

Contact Us: admin [ a t ] ucptt.com