用信号量和PV操作实现它们的同步。 20
设在公共汽车上,司机和售票员的活动分别为:司机的活动:启动汽车;正常行驶;到站停车。售票员的活动:关车门;售票;开车门。在汽车不断到站、停车、行驶的过程中,这两个活动有什...
设在公共汽车上,司机和售票员的活动分别为:
司机的活动:启动汽车;正常行驶;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断到站、停车、行驶的过程中,这两个活动有什么同步关系?用信号量和PV操作实现它们的同步。
这属于操作系统原理
有朋友知道的吗 展开
司机的活动:启动汽车;正常行驶;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断到站、停车、行驶的过程中,这两个活动有什么同步关系?用信号量和PV操作实现它们的同步。
这属于操作系统原理
有朋友知道的吗 展开
2个回答
展开全部
确定信号量及其值。由于司机与售票员之间要互通消息,司机进程设置一个私有信号量run,用于判断司机能否进行工作,初值为0。售票员进程设置一个私有信号量stop,用于判断是否停车,售票员是否能够开车门,初值为0。
实现:
begin stop ,run:semaphore
stop:=0;run:=0;
cobegin
driver: begin
L1: P(run);
启动车辆;
正常行车;
到站停车;
V(stop);
goto L1;
end;
conductor:begin
L2:上乘客;
关车门;
V(run);
售票;
P(stop);
开车门;
下乘客;
goto L2;
end;
coend;
end;
实现:
begin stop ,run:semaphore
stop:=0;run:=0;
cobegin
driver: begin
L1: P(run);
启动车辆;
正常行车;
到站停车;
V(stop);
goto L1;
end;
conductor:begin
L2:上乘客;
关车门;
V(run);
售票;
P(stop);
开车门;
下乘客;
goto L2;
end;
coend;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询