经典指数          
原因
4495
浏览数
0
收藏数
 

设有n个进程共享一个互斥段,对于如下两种情况使用信号量,信号量的值的变化怎样? (1) 如果每次只允许一个进程进入互斥段。 (2) 如果每次最多允许m个进程(m

     举报   纠错  
 
切换
1 个答案

1

)互斥信号量初值为

1

,变化范围为[

-n

l , 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.

 
切换
撰写答案