文章
297
粉丝
0
获赞
1
访问
178.0k

评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生第一次识别中,empty初值设为0错误(应为10),但第二次识别中empty初值正确为10;mutex初值正确为1;serve初值设为1错误(应为0,用于同步等待叫号)。第一次识别中信号量定义有严重错误(empty=0),第二次识别中serve初值错误。但考虑到两次识别结果,以正确部分给分,信号量定义部分正确,扣1分。
(2)顾客进程实现(满分3分)
得分:1分
理由:学生答案中顾客进程使用了P(empty)和P(mutex)保护取号操作,基本正确;但P(serve)位置错误(应在取号后等待叫号,但学生放在取号后且未与叫号同步),且第二次识别中多了一次P(mutex)和V(mutex)操作(冗余且可能导致死锁)。顾客进程未实现座位计数和同步等待叫号的正确逻辑,与标准答案偏差较大,扣2分。
(3)营业员进程实现(满分3分)
得分:1分
理由:营业员进程使用while(TRUE)循环正确,但缺少对座位区计数(full)的信号量操作,且V(serve)操作未与顾客等待配对(应先叫号再V(serve))。服务逻辑顺序错误(应先叫号再服务,但学生先V(serve)再服务),导致同步问题。与标准答案相比缺少关键同步机制,扣2分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发