P1 - > P2 - > P3 - > P4 - > P5
P(n) - 过程
一次只运行一个流程,严格排序。
去年我使用3个信号量来解决问题(有效地创建了一个屏障)。 这是我的算法:
P S1 S1 S1 S1
4W1 W0 W0 W0 W0
4S0 P S2 S2 S2
3W2 W1 W1 W1
3S1 P S1 S1
2W1 W0 W0
2S0 P S2
W2 W1
S1 P
(执行从上到下,每个通道都是一个进程)
P - 需要连续化的实际工作
W(n) - 等待
S(n) - 信号
4W1表示“做4等待”
wait1和signal1以semaphore1运行,依此类推......
算法说明:
问题是我无法弄清楚如何使用2个信号量使其工作。
PS:这不是一项任务,这是一个长期困扰我的问题。答案 0 :(得分:0)
使用2个信号量无法完成。 3是最低限度。