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

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

              售票员的活动:        关车门;

                                          售票;

                                          开车门;

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

                                          正常行车;

                                          到站停车;

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

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

 

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

}

转载于:https://www.cnblogs.com/yihujiu/p/5653563.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值