文章
54
粉丝
21
获赞
0
访问
4.0k

评分及理由
(1)信号量定义部分(满分2分)
得分:1分
理由:学生定义了三个信号量:seat(初始值10,表示空座位数)、seat1(初始值0,表示等待顾客数)、service(初始值1,表示服务窗口互斥)。其中seat和seat1符合生产者-消费者模型中的空位和满位计数信号量要求,但service信号量的使用存在问题(见后续分析)。信号量定义基本正确但不够完整,扣1分。
(2)顾客进程实现(满分3分)
得分:1分
理由:顾客进程中使用了P(seat)来获取座位,V(seat1)来增加等待顾客数,这部分正确。但是存在以下逻辑错误:①没有对取号机进行互斥保护(缺少取号机互斥信号量);②将service信号量用作服务窗口互斥是不正确的,这会导致多个顾客同时获得服务;③"等待叫号"没有对应的P操作来实现同步等待。由于存在多处逻辑错误,扣2分。
(3)营业员进程实现(满分3分)
得分:1分
理由:营业员进程中使用了P(seat1)来检查是否有等待顾客,V(seat)来释放座位,这部分正确。但是存在以下逻辑错误:①没有实现叫号与顾客获得服务之间的同步机制;②服务过程没有正确的同步控制;③V(seat)的位置可能不合理,应该在服务完成后释放座位。由于同步机制不完整,扣2分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发