首页 > 试题广场 >

在有 n 个进程共享一个互斥段,如果最多允许 m 个进程 (

[单选题]

在有 n 个进程共享一个互斥段,如果最多允许 m 个进程 (m<n) 同时进入互斥段,则信号量的变化范围是(        )

  • -(n-m)~m
  • -m~0
  • -m-1~n
  • -m-1~n-1
我的考虑方法有.奇怪
信号量范围大小应该是n,只有A信号量范围大小为A,故A。
发表于 2019-12-23 21:17:09 回复(0)
允许m个进程同时进入,说明剩下的n-m个都在等待中,所以范围就是从-(n-m)~m
发表于 2018-08-26 20:11:53 回复(0)
允许m个进程同时进入互斥段,说明初始值为m,当进入m后,剩下n-m个等待进入,因此下限是-(n-m)。因此范围是-(n+m,m)。答案有问题吧,小牛课?
编辑于 2017-07-30 15:19:04 回复(1)
链接:https://www.nowcoder.com/questionTerminal/3e25265f1fbd4fa1a5e8d0704851263b
来源:牛客网
• 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.
发表于 2020-11-10 15:05:31 回复(1)
难道不应该是-(m-1)~1吗?
发表于 2017-07-21 16:36:43 回复(0)
求正解
发表于 2019-09-12 19:02:37 回复(0)