首页 > 试题广场 >

有n个进程共享一个临界资源,使用信号量机制实现资源的访问互斥

[单选题]
有n个进程共享一个临界资源,使用信号量机制实现资源的访问互斥,信号量的最小取值是()
  • -n
  • -1
  • 1
  • -n+1
信号量的初始值为1,有n个进程,最极端的情况就是如果有一个进程正在访问临界资源,其他n-1个进程都在等待,此时信号量为 0- (n-1) = -n + 1
发表于 2019-05-24 20:57:21 回复(0)
1、因为(1个临界资源),所以初始(信号量)为:1
2、当n个进程时, 若1个进程(获取到:临界资源), 那么信号量(减1), 变为了0,(信号量 <= 0说明没有可用资源了)
3、那么只有1个进程获得了资源, 还有n-1个进程,不能得到资源, 但是它们都会来(申请一下:可用资源), 申请的同时,信号量减1
4、所以:m-1个进程(申请), 信号量,原本是0, 每来一个减1,  故信号量为:-(m-1)

表述得不一定准确,大家可以参考一下(其他人的)予以对比分析。


发表于 2021-01-18 15:33:08 回复(0)
出现死锁情况呢?
发表于 2021-07-14 12:38:55 回复(0)
每次wait会–1,当信号量取最小值的时候应该是一个进程正在访问临界资源,剩余n-1个进程在等待,所以为1-n
发表于 2022-03-09 15:14:45 回复(0)
信号量的初始值为1,有n个进程,最极端的情况就是如果有一个进程正在访问临界资源,其它n-1个进程都在等待,此时信号量为0-(n-1)=-n+1
发表于 2021-06-22 14:55:15 回复(0)