文章
124
粉丝
0
获赞
0
访问
12.7k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了四个信号量:seat=10(表示座位数量)、full=0(表示等待顾客数)、window=1(表示窗口服务互斥)、mutex=1(表示取号机互斥)。信号量定义基本正确,但缺少对顾客等待叫号的同步信号量(如service_i),扣1分。得分:1分。
(2)顾客进程实现得分及理由(满分3分)
顾客进程中,P(seat)正确控制座位资源,P(mutex)保护取号机互斥,V(mutex)释放取号机正确。但存在以下逻辑错误:①V(full)位置错误,应在取号后立即增加等待顾客数,但学生将其放在互斥区内,虽不影响功能但不符合典型生产者消费者模式;②缺少等待叫号的P操作(如P(service_i)),导致顾客无法等待营业员叫号;③P(window)和V(seat)顺序错误,应在获得服务后释放座位,但学生先P(window)再V(seat),逻辑混乱。扣2分。得分:1分。
(3)营业员进程实现得分及理由(满分3分)
营业员进程中,P(full)正确检测等待顾客,但缺少对座位区的互斥操作(如P(mutex)保护座位区修改)。V(window)释放窗口服务正确,但整体缺少与顾客的同步机制(如缺少V(service_i)通知顾客)。扣2分。得分:1分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发