文章
36
粉丝
0
获赞
2
访问
1.8k
评分及理由
(1)信号量定义及初值(满分2分)
学生定义了四个信号量:mutex=1(互斥访问取号机)、empty=10(空闲座位数)、full=0(等待顾客数)、service=0(同步服务)。信号量定义基本正确,但缺少对取号机互斥的明确保护(虽然mutex可能被用于取号机,但标准答案中通常需要单独的信号量machine来保护取号机,因为座位区互斥和取号机互斥是独立的)。此处mutex被用于取号机互斥和座位区互斥混合,逻辑不严谨,扣1分。得分:1分。
(2)顾客进程实现(满分3分)
顾客进程中:P(empty)正确(检查空闲座位);P(mutex)用于取号机互斥(但mutex应仅用于座位区,取号机应有独立信号量,此处逻辑错误);"从取号机获取一个号码"后直接V(full)和V(mutex),但未实现进入座位区的操作(标准答案中需要将顾客加入座位区并保护座位区互斥),且V(full)位置错误(应在进入座位区后释放);P(service)等待叫号正确。整体缺少座位区互斥管理,且取号机互斥与座位区互斥混淆,扣2分。得分:1分。
(3)营业员进程实现(满分3分)
营业员进程中:P(full)正确(检查等待顾客);但随后直接V(service)和V(empty),缺少从座位区移除顾客的操作(标准答案中需要保护座位区互斥并释放座位),且V(empty)应在释放座位后执行(但此处顺序错误,应先移除顾客再释放座位);"为客户服务"前缺少叫号操作(标准答案中叫号应在V(service)之前)。同步逻辑混乱,未实现座位区管理,扣2分;缺少叫号步骤,扣1分。得分:0分。
题目总分:1+1+0=2分
登录后发布评论
暂无评论,来抢沙发