文章
509
粉丝
0
获赞
1
访问
203.4k

评分及理由
(1)信号量定义及初值(满分2分)
得分:2分
理由:学生定义了四个信号量:seat(初始值10,表示空座位数)、mutex(初始值1,表示取号机互斥)、full(初始值0,表示等待顾客数)、service(初始值1,表示服务同步)。这些信号量的含义和初值设置正确,覆盖了互斥和同步需求。
(2)顾客进程实现(满分3分)
得分:2分
理由:顾客进程中,P(seat)和P(mutex)的顺序正确,保证了先检查空座位再互斥使用取号机;V(mutex)和V(full)的位置正确。但P(service)的位置错误:应在"等待叫号"前执行P(service),但学生将其放在取号后,导致顾客在取号后立即等待服务信号量,而实际上服务信号量应由营业员在叫号后释放。这里存在逻辑错误,扣1分。
(3)营业员进程实现(满分3分)
得分:2分
理由:营业员进程中,P(full)检查等待顾客数正确;V(seat)释放座位正确;V(service)释放服务信号量正确。但缺少对座位区的互斥操作(如P(mutex)和V(mutex)保护座位区修改),且"叫号"和V(service)的顺序应调整:应先叫号再释放服务信号量,但学生将V(service)放在叫号后,顺序正确。因缺少座位区互斥保护,扣1分。
题目总分:2+2+2=6分
登录后发布评论
暂无评论,来抢沙发