文章
459
粉丝
0
获赞
1
访问
58.9k

评分及理由
(1)得分及理由(满分8分)
学生答案整体思路正确,实现了基本的同步与互斥,但存在一个关键逻辑错误。具体分析如下:
seat(初值10)控制等待座位数量,符合题目要求。mutex(初值1)保护取号机互斥访问,正确。full(初值0)表示等待顾客数,用于营业员同步,正确。P(seat) 再取号,营业员进程先 P(full) 再叫号,流程顺序合理。service 的用法存在逻辑错误。学生将其初值设为1,并在顾客进程中执行 P(service) 等待服务,在营业员进程中执行 V(service) 通知顾客。这会导致第一个顾客无需等待叫号即可直接获得服务(因为 service 初值为1,第一个 P(service) 不会阻塞),破坏了“等待叫号”的同步逻辑。正确的做法应是 service 类信号量初值为0,确保顾客必须等待营业员叫号后才能继续。题目总分:6分
登录后发布评论
暂无评论,来抢沙发