进程同步问题:司机与售票员 急求怎么写代码啊?

1. 司机的活动:启动车辆,正常行车,到站停车。2. 售票员活动:关车门,售票,开车门。3. 当发车时间到,售票员关好车门后,司机才能启动车辆,售票员才开始售票。当到站时,司机停稳车后,售票员才能打开车门,车上乘客先下车,然后站牌乘客上车。4. 可以设置汽车的速度,载客人数,路线总站数,随机生成上下车人数。5. 可以根据题目的基本要求进行丰富的创意和想象。 请各位高人帮忙一下,最好给个代码.用C# 实现.并解释一下代码哦.谢谢!

在计算机系统中可以将司机和售票员分别看作P1、P2两个进程,当它们并发地向前推进时,计算机系统所接受到的实际上是司机活动与售票员活动的许多交叉中的任意一个交叉,这些交叉有些满足上述要求,有些则不满足,而操作系统必须保证不发生不满足上述要求的交叉,即: 如P2尚未推进到②处时,而P1已推进到①处,则P1应等待直到P2推进到②处为止; 如P1尚未推进到③时,P2已到④,则P2应等待直到P1推进到③处为止。 P1在①处发生了等待,则P2执行到②处时应将P1唤醒; P2在④处发生了等待,P1到③处应将P2唤醒。 一组相互合作的并发进程,为了协调其推进速度,有时需要相互等待与相互唤醒,进程之间这种相互制约的关系称作进程同步,虽然进程同步仅发生在相互有逻辑关系的进程之间,这种相互制约的关系称作进程同步,进程同步现象仅发生在相互有逻辑关系的进程之间,这点与进程互斥不同,进程互斥现象发生在任意两个进程之间。 与进程同步相关的另一概念是进程合作,一组进程如果它们单独执行不能正常进行,但并发执行可以正常进行,这种现象称为进程合作,参与进程合作的进程称为合作进程,如司机与售票员的例子,二者单独执行都不能正常进行,但二者并发反可以正常进行,成为合作进程,这种进程合作的现象在操作系统中经常发生。
解法一:
struct semaphore s1,s2=0,0;
cobegin
void driver(void)
{
while(TRUE){
p(s2);
启动车辆;
正常行车;
到站停车;
V(s1);}
}
void conductor(void)
{
while(TRUE){
上、下乘客;关车门;
V(s2);
售票;
P(s1);
开车门;上、下乘客;}
}
coend解法二:
struct semaphore s1,s2=1,0;
cobegin
void driver(void)
{
while(TRUE){
P(s2);
启动车辆;
正常行车;
到站停车;
V(s1);}
}
void conductor(void)
{
while(TRUE){
P(s1);
开车门;
上、下乘客;
关车门;
V(s2);售票;}
}
coend
温馨提示:内容为网友见解,仅供参考
无其他回答

进程同步问题:司机与售票员 急求怎么写代码啊?
在计算机系统中可以将司机和售票员分别看作P1、P2两个进程,当它们并发地向前推进时,计算机系统所接受到的实际上是司机活动与售票员活动的许多交叉中的任意一个交叉,这些交叉有些满足上述要求,有些则不满足,而操作系统必须保证不发生不满足上述要求的交叉,即: 如P2尚未推进到②处时,而P1已推进...

进程同步问题:司机与售票员 急求怎么写代码啊?
1. 司机的活动:启动车辆,正常行车,到站停车。2. 售票员活动:关车门,售票,开车门。3. 当发车时间到,售票员关好车门后,司机才能启动车辆,售票员才开始售票。当到站时,司机停稳车后,售票员才能打开车门,车上乘客先下车,然后站牌乘客上车。4. 可以设置汽车的速度,载客人数,路...

进程同步问题:司机与售票员,怎么写代码啊?
一、把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。二、设进程PA和PB通过缓冲区队列传递数据。PA为发送进程、PB为接收 进程。PA发送...

设一辆公共汽车上,司机和售票员的活动分别是 :司机:启动车辆,正常行车...
第一步:确定进程间的关系。售票员关车门后,要向司机发开车信号,司机接到开车信号后才能启动车辆。在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门,让乘客上下车。因此司机启动车辆的动作必须与售票员的动作取得同步;售票员开车门的动作也必须同司机停车取得同步。第二步:确定...

试分析“司机vs售票员”同步问题中,哪些操作是关键操作,哪些不是?为 ...
在“司机vs售票员”同步问题中,关键操作包括:售票员的操作:售票员需要负责售票、找零、核对乘客目的地等工作。这些操作是售票员的核心职责,直接关系到乘客的出行体验和车辆运营的效率。司机的操作:司机需要负责驾驶车辆、启动车辆、停靠站点、开关车门等操作。这些操作是保证车辆安全运营和乘客生命安全的...

一文搞懂操作系统进程同步的几种机制(含现实案列)
相比之下,进程同步代表进程间的直接相互作用,是合作进程间的有意识行为。一个典型的例子是司机与售票员在公共汽车上的合作,需要特定的协调机制来确保行动顺序。在多进程环境下,同步机制确保进程间的正确执行顺序。本讲将详细介绍以下四种同步和互斥机制:信号量、管程、会合、分布式系统。信号量是一种...

公交售票员转司机申请书怎么写?范文?:
转岗申请书 尊敬的公司人事处:您好!首先感谢您在百忙之中审阅我的申请报告!我叫XXX,我于XX年X月进入公司工作至今。现想申请目前乘务员到驾驶员岗位。在公司工作的这段时间里,我都是在乘务员岗位工作,不但学到了较多的专业知识,更是培养了我吃苦耐劳、勇于接受挑战的精神,还使我学到了更多做人...

华北电力大学计算机专业考研专业课复习,手把手教你考研复习
semaphore seats;seats.value=100;while(阅览时间){wait(seats);进入阅览室;阅读;离开阅览室;signal(seats);}4.3司机与售票员while(上班时间){发动汽车;正常运行;到站停车;}while(上班时间){关闭车门;售票;打开车门;}4.4两个并发进程的读写设有一个缓冲区buffer,大小为一个字节(如图)。

如何用P V原语实现进程间的互斥与同步
V 原语操作的动作是: (1)sem 加1; (2)若相加结果大于零,则进程继续执行; (3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。 PV 操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV 原语执行期间不允许有中断的发生。

英语我爸爸是司机,妈妈是售票员怎么写
my father is a car driver, and my mother a ticket seller.

相似回答