文章
35
粉丝
0
获赞
0
访问
3.4k
评分及理由
(1)信号量定义及初值(满分2分)
学生定义了四个信号量:sit=10(表示座位数,正确)、window=1(表示服务窗口,但标准答案中无需此信号量,此处逻辑错误)、mutex=1(取号机互斥,正确)、number=0(表示等待顾客数,正确)。但缺少服务同步信号量(如service_i),且window信号量多余。扣1分。
得分:1分
(2)顾客进程实现(满分3分)
顾客进程中:P(sit)正确(获取座位),P(mutex)和V(mutex)正确(取号机互斥),V(number)正确(增加等待顾客)。但P(window)错误(此处应为等待叫号同步,而非申请窗口资源),且缺少座位区互斥操作(标准答案中的mutex保护座位区修改)。另外,学生代码中顾客结束时未释放资源(如V(sit)应在营业员中释放)。逻辑错误较多,扣2分。
得分:1分
(3)营业员进程实现(满分3分)
营业员进程中:P(number)正确(检查等待顾客),但P4S为识别错误(应为无关字符,忽略)。V(window)错误(释放窗口资源,但实际应为同步唤醒顾客),且缺少座位区互斥操作。服务完成后V(sit)位置错误(应在顾客离开座位区后释放,但学生代码中顾客和营业员均V(sit),会导致重复释放)。逻辑错误严重,扣2.5分。
得分:0.5分
题目总分:1+1+0.5=2.5分
登录后发布评论
暂无评论,来抢沙发