信号量操作实现他们的同步

设公共汽车上,售票员和司机的活动分别是:

              售票员的活动:        关车门;

                                          售票;

                                          开车门;

              司机的活动是:        启动车辆;

                                          正常行车;

                                          到站停车;

在汽车不断地到站,停车、行驶过程中,请用信号量操作实现他们的同步。

解:分析题意得前趋图为:

 

P1 ( ) { 关门 ; signal(a); signal (b) ; }

P2( ) { wait(a) ; 启动; signal( c) ; }

P3( ) { wait (c) ;行车; signal ( e); }

P4( ) { wait ( b); 售票; signal ( d); }

P5( ) {wait(e); wait(d);停车; signal (f) }

P6 () { wait( f) ;开门;}

main() {

           Semaphore a,b,c,d,e,f;

           a.value = b.vlaue=c.value = 0;

          d.value = e.value = f.value = 0;

          cobegin

                P1 ();p2(); P3(); P4(); p5(); p6();

          Coend

}

posted @ 2016-07-08 15:38  我有一壶酒  阅读(442)  评论(0编辑  收藏  举报