-公交车问题
来源:互联网 发布:ubuntu 16 openjdk 编辑:程序博客网 时间:2024/04/28 01:41
问题描述:设公交车上,司机和售票员的活动分别如下:
司机的活动:启动车辆;正常行车;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断地到站,停车,行驶过程中,这两个活动有什么同步关系?用信号量和pv操作实现它们的同步。
问题分析:在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开门让乘客上下车。因此,司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。应设置两个信号量:S1、S2;
S1表示是否允许司机启动汽车(其初值为0)
S2表示是否允许售票员开车门(其初值为0)
用pv原语描述如下:
the PV code using pascal
var S1,S2:semaphore;
S1=0;S2=0;
cobegin
Procedure driver
begin
while(TURE)
begin
P(S1);
start;
driving;
stop;
V(S2);
end
end
Procedure conductor
begin
while(TURE)
begin
关车门;
V(S1);
售票;
P(S2);
开车门;
上下乘客;
end
coend
- -公交车问题
- 公交车调度问题程序流程图
- 公交车
- 公交车换乘问题的算法分析小探
- 多线程经典问题-----乘客做公交车问题解答1
- 多线程经典问题-----乘客做公交车问题解答2
- 多线程经典问题-----乘客做公交车问题解答3
- 公交车人数问题(某公司在线笔试编程题)
- PV操作解决公交车与售票员同步问题
- 乘公交车
- 赶公交车
- 公交车奇遇
- 公交车理论
- 公交车比喻
- 公交车乘客
- 公交车乘客
- 公交车乘客
- 乘坐公交车
- UNIX下让程序在后台执行
- struts国际化
- Lemur生成索引
- document.body和document.documentElement 的区别
- 抽象工厂模式
- -公交车问题
- Google 排名中的 10 个最著名的 JavaScript 库
- Lemur的参数文件
- C++中extern “C”含义深层探索
- html小型杀毒软件
- windbg release下"Your debugger is not using the correct symbols"的问题
- 编译gcc-4.4.2
- 常见采集格式
- 二十条实用的生活小窍门--转载