文章
75
粉丝
78
获赞
0
访问
4.2k

评分及理由
(1)得分及理由(满分8分)
学生作答整体思路正确,将问题识别为生产者-消费者模型,并设置了相应的同步信号量。但存在以下逻辑错误:
service信号量初始化为1,并在顾客和服务员进程中分别进行P、V操作,这会导致多个顾客可能同时获得服务,破坏了“营业员空闲时选取一位顾客服务”的同步约束。正确的做法应是一个用于同步的信号量(如标准答案中的service_i),由顾客P等待,由营业员V唤醒。P(full); P(service);,这会导致full信号量被错误地多P一次,可能造成死锁或逻辑混乱。full信号量应由顾客在取号后V增加,由营业员P消耗。mutex保护座位区的入座和离座操作(虽然本题中因座位计数信号量empty和full已能保证互斥,但严谨起见仍应说明),学生答案未体现对座位区操作的互斥,但此错误在本题中因信号量已能保证正确性,可不扣分。V(service),这会导致服务信号量提前释放,可能让其他顾客错误地被唤醒。综合来看,学生理解了基本的同步互斥框架(取号机互斥、座位计数),但在核心的“叫号-服务”同步关系上存在严重逻辑错误,导致无法正确实现“营业员叫号后顾客获得服务”的流程。因此扣除主要逻辑错误分。
得分:4分(满分8分)
题目总分:4分
登录后发布评论
暂无评论,来抢沙发