我目前正在为之前迭代的操作系统考试进行培训,我遇到了这个:
实施“N 进程屏障”,即
是,确保每个流程都完成
他们中的一群人在某个时刻等待着
点在其各自的执行中,对于
其他进程达到他们的
给定点。
您有以下内容
可用操作:
init(sem,value), wait(sem) and signal(sem)
N是任意数。我可以使它适用于给定数量的进程,但不适用于任何数量。
有任何想法吗?用伪代码回复就可以了,这不是作业,只是个人学习。
这在信号量小书 http://greenteapress.com/semaphores/.
n = the number of threads
count = 0
mutex = Semaphore(1)
barrier = Semaphore(0)
mutex.wait()
count = count + 1
mutex.signal()
if count == n: barrier.signal() # unblock ONE thread
barrier.wait()
barrier.signal() # once we are unblocked, it's our duty to unblock the next thread
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)