某书店有一个收银员该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1和a2应填入(

某书店有一个收银员该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1和a2应填入(1),图中b1和b2应填入(2).

这个就很好理解了 P(Sn)指的就是每当有一个人进入就对信号量进行-1操作,
V(Sn)就是指购书成功离开书店进行+1操作。
这个就用猜测法吧,什么辣鸡题目,搞不懂。
首先我先猜测一下付款的流程,就是先排队,再付款,因为收银员只有一人,一次只能接一单,所以得先排队,如果收银员没人再付款,排队其实就是用V操作V(S1)而付款则是P(S2),这里大家可能有一个问题就是没有V(S2)怎么P(S2)呢,其实V(S2)的操作是在收银员处执行的,因此第一题答案就是选A

第二题收银员则是先将正在排队的人进行P操作-1也就是P(S1) 付款完成再将可进行付款的人进行V操作+1,那么就可以有新的人进来付款也就是V(S2)
答案选 C

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
抱歉,作为AI语言模型,我无法执行代码和运行程序。但是我可以给你提供一些思路和建议,希望能够帮助到你。 一个简单的超市收银系统应该有以下几个功能模块: 1. 用户登录模块:实现收银员登录功能,可以使用用户名和密码进行验证,确保只有授权人员可以使用该系统。 2. 商品信息模块:输商品编号,获取商品名称、单价、折扣等信息。 3. 数模块:获取商品数,确保输的数是合法的。 4. 总价计算模块:根据输的商品编号、数、单价等信息,计算出总价。 5. 打折优惠模块:根据商品折扣信息,对总价进行打折优惠计算。 针对以上功能模块,你可以使用 Python 实现一个对象,通过类的方式将其进行封装,使其能够方便地被其他模块调用。 整个系统的设计可以参考以下思路: 1. 定义一个 User 类,实现登录功能,验证用户名和密码是否正确,确保只有授权人员可以使用该系统。 2. 定义一个 Product 类,实现商品编号并获取商品信息的功能,商品信息可以通过文件或数据库进行存储和管理。 3. 定义一个 Order 类,实现商品数和总价的计算功能,完成打折和优惠计算。 4. 定义一个 Cashier 类,作为超市收银系统的主类,调用上述三个对象以实现完整的收银功能。 通过上述的设计,你可以将整个超市收银系统分为多个模块,实现功能的模块化,使得代码更加清晰易懂并且易于维护。当然,如何具体实现还需要根据实际需求进行更加详细的设计。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举世无双勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值