文章
26
粉丝
0
获赞
0
访问
365
评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了四个信号量:seat(初始值10,表示空座位数,正确)、hao(初始值0,表示等待顾客数,类似full,正确)、mutex(初始值1,用于取号机互斥,正确)、wait(初始值0,用于服务同步,但含义不清晰,标准答案中服务同步应针对具体顾客,这里用单一信号量可能存在问题,但初值设置正确,扣1分)。
(2)顾客进程实现(满分3分)
得分:2分
理由:顾客进程中,P(seat)正确获取空座位,P(mutex)保护取号机,V(hao)通知营业员有顾客等待,V(mutex)释放取号机,这些操作正确。但“等待服务”和P(wait)顺序不当,应先等待叫号(即P(wait))再接受服务,而学生将“等待服务”放在P(wait)之前,这可能导致逻辑错误(扣1分)。V(seat)在接受服务后释放座位,正确。
(3)营业员进程实现(满分3分)
得分:2分
理由:营业员进程中,P(hao)检测是否有顾客等待,正确;叫号和服务操作正确;V(wait)通知顾客开始服务,正确。但缺少对座位区的互斥访问(如标准答案中的mutex用于座位区),这可能导致座位计数错误(扣1分)。此外,营业员未在叫号前让顾客离开座位区并更新empty信号量,但学生代码中通过V(seat)在顾客端释放座位,间接实现了座位管理,可接受。
题目总分:1+2+2=5分
登录后发布评论
暂无评论,来抢沙发