[理工] 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