试题详情
简答题 设有n个进程共享一个互斥段,如果:  (1)每次只允许一个进程进入互斥段;  (2)每次最多允许m个进程(m≤n)同时进入互斥段。  试问:所采用的信号量初值是否相同?信号量值的变化范围如何?
  • 所采用的互斥信号量初值不同。
    1)互斥信号量初值为1,变化范围为 [-n+1 ,1]。
    当没有进程进入互斥段时,信号量值为1;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为0;当有1个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-1个进程等待进入互斥段,故此时信号量的值应为-(n-1)也就是-n+1。
    2)互斥信号量初值为m,变化范围为 [-n+m ,m]。
    当没有进程进入互斥段时,信号量值为m;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为m-1;当有m个进程进入互斥段且没有一个进程等待进入互斥段时,信号量值为0;当有m个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-m个进程等待进入互斥段,故此时信号量的值应为-(n-m)也就是-n+m。
  • 关注下方微信公众号,在线模考后查看

热门试题