设有n个进程共享一个互斥段,如果:(1)每次只允许一个进程进入互斥段;(2)每次最多允许m个进程(m≤n)同时进入互斥段。试问:所采用的信号量初值是否相同?信号量值的变化范围如何?

admin2018-08-12  46

问题 设有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。

解析
转载请注明原文地址:https://kaotiyun.com/show/X0Ri777K
0

最新回复(0)