操作系统售票员与乘客

该博客讨论了如何通过编程模拟车站售票厅的进程同步问题。内容涉及当售票厅人数超过20人时,系统如何提示乘客等待,以及如何在人数少于或等于20人时进行售票操作。博客提到了三种场景,并介绍了使用三个信号量(empty、full、mutex)来实现进程间的同步和互斥。
摘要由CSDN通过智能技术生成

设计要求:编程序模拟车站售票厅进程同步问题,售票厅任何时刻最多可容纳20名购票者进入,否则需要在外面等待。每个购票者可以看成一个进程。

售票厅任何时刻最多可容纳20名购票者进入,当售票大厅超过20人时,系统提示乘客需退出大厅等待;当大厅中人数少于或等于20人时,售票员开始售票,并提示等待的乘客进入大厅;

由于售票大厅是缓存区,最大容量为20,因此会出现3中情况:

①  若此时售票厅里人数为零时,则程序会提醒售票大厅为空,售票员的进程阻塞,直到购票者的进程运行完才唤醒该进程;

② 当进入售票厅内的人数还没有20时,进程将继续执行,则表示售票者的进程和购票者的进程都能执行;

③ 由于程序中的售票厅最大只能容纳20个人,所以,当售票厅内的人数进入将20时,则程序会提醒用户售票大厅的人数已满,请排队等候,购票者进程阻塞,直到售票者的进程运行完才唤醒该进程。

由于是多个购票者和多个售票者对应多个缓存区,因此,设置3个信号量:

同步信号量empty表示空缓存单元的个数,初值为20;

同步信号量full表示满缓冲单元的个数,初值为0;

互斥信号量mutex表示互

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值