文章
20
粉丝
0
获赞
0
访问
483

评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了四个信号量:service(初值0,用于等待叫号)、full(初值10,表示空座位数)、num(初值0,表示等待人数)、mutex(初值1,用于取号机互斥)。其中mutex和full的初值正确,但service和num的含义与标准答案中的full/empty组合存在逻辑差异。num实际上对应标准答案中的full信号量(等待人数),但学生将其用于营业员同步,而service用于顾客等待,这种设计虽然功能可实现,但语义不够清晰。扣1分。
(2)顾客进程实现(满分3分)
得分:2分
理由:顾客进程正确使用了P(full)检查空座位、P(mutex)保护取号机、V(mutex)释放取号机。但P(service)的位置错误(应在获得号码后立即等待叫号,但学生将其放在V(num)之前,导致等待队列同步逻辑混乱),且V(num)应在进入等待队列后立即执行,这里顺序错误。扣1分。
(3)营业员进程实现(满分3分)
得分:2分
理由:营业员进程通过P(num)检查等待人数,然后叫号、V(service)通知顾客、V(full)释放座位,最后服务顾客。逻辑基本正确,但缺少对座位区的互斥保护(标准答案中通过mutex保护座位区计数),且服务顺序中V(service)在叫号后立即执行,可能导致顾客未准备好。扣1分。
题目总分:1+2+2=5分
登录后发布评论
暂无评论,来抢沙发