文章
24
粉丝
50
获赞
1
访问
969

评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了四个信号量:seat(初始值10,表示空座位数)、mutex(初始值1,用于取号机互斥)、hao(初始值0,表示等待服务的顾客数)、servile(初始值1,表示营业员空闲状态)。其中seat和mutex的定义正确,hao的定义基本正确(但标准答案中对应的是full信号量),servile的定义存在问题(营业员空闲状态不应初始化为1,这会导致同步逻辑错误)。扣1分。
(2)顾客进程实现(满分3分)
得分:1分
理由:顾客进程中,P(seat)和P(mutex)的顺序正确,V(hao)的位置基本正确(但标准答案中应在进入座位区后增加full信号量)。但存在以下逻辑错误:1)缺少对座位区的互斥操作(标准答案中有mutex保护座位区);2)P(servile)的位置错误,应在等待叫号后,但学生将其放在等待叫号后,这会导致营业员无法正确唤醒顾客;3)缺少V(empty)或类似操作。扣2分。
(3)营业员进程实现(满分3分)
得分:1分
理由:营业员进程中,P(hao)和V(seat)的顺序基本正确,但存在以下逻辑错误:1)V(seat)的位置错误,应在顾客离开座位区后,但学生将其放在叫号后,这会导致座位释放过早;2)V(servile)的位置错误,应在服务完成后,但学生将其放在服务后,这会导致顾客在服务完成前被唤醒;3)缺少对座位区的互斥操作。扣2分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发