首页 > 试题广场 >

设有n个进程共享一个互斥段,对于如下两种情况使用信号量,信号

[问答题]
设有n个进程共享一个互斥段,对于如下两种情况使用信号量,信号量的值的变化怎样?
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程(m<n)同时进入互斥段。
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.
发表于 2015-09-26 16:47:52 回复(1)
(1)信号量的初值为1。信号量的变化范围是1,0,-1,…,-(n-1)。(2)信号量的初值为m。信号量的变化范围是m,m-1,…,1,0,…,-(n-m)。
发表于 2015-05-19 17:24:01 回复(0)