日期:2014-05-16  浏览次数:20716 次

进程同步,用进程+SYS V信号量实现如下前趋图
p1->p2; p1->p3; p2->p4; p2->p5; p3->p5; p4->p6; p5->p6;其中p5的进行要在p2和p3完成之后,p6的进行要在p4和p5完成之后。进程pi的主体反复输出语句: I am process pi。执行次数必须保证进程并发情况的发生(比如p3和p4的交迭运行)。环境:Linux+C编程。一个典型输出序列如下:
I am process 1
I am process 1
I am process 3
I am process 2
I am process 2
I am process 3
I am process 3
I am process 4
I am process 5
I am process 5
I am process 4
I am process 6
I am process 6
I am process 6
另:请给出详细代码+注释,非常感谢

------解决方案--------------------
弄两个信号灯a, b,初值都是2

p2 完成之后,a-1
p3 完成之后,a-1
p5 等待信号灯a变为0,然后b-1
p4 完成之后,b-1

p6 等待信号灯b变为0