PV操作(信号量),实现进程的同步和互斥:
P(S):将信号量S减一,即S = S - 1;如果 S = 0,则进程继续执行,否则进入等待状态;
V(S):将信号量S加一,即S = S + 1;如果 S > 0,则进程继续执行,否则释放队列中的一个等待信号量的进程;
司机活动:启动车辆、正常行车、到站停车
售票员活动:关车门、售票、开车门
要求:当发车时间到,售票员关好车门后,司机才能启动车辆,售票员开始售票;
当到站后,司机停车后,售票员才能打开车门,乘客下车,站牌乘客上车。
设置两个信号量:
S1:判断是否到站
S2:判断是否可以离站