文章
26
粉丝
0
获赞
0
访问
394
评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了四个信号量:seat(代表空座位数,初值10,正确)、hao(代表等待顾客数,初值0,正确)、mutex(取号机互斥,初值1,正确)、wait(服务同步,初值1,错误,应为0)。wait初值应为0,表示初始无服务可用,学生设为1会导致营业员无法正确等待顾客。扣1分。
(2)顾客进程实现(满分3分)
得分:2分
理由:顾客进程基本正确:P(seat)获取座位(正确)、P(mutex)取号机互斥(正确)、取号后V(hao)通知营业员(正确)、等待服务P(wait)(正确)、获取服务后V(seat)释放座位(正确)。但V(hao)应在释放mutex之后,但学生顺序为V(hao)后V(mutex),顺序不影响正确性,不扣分。主要错误是wait初值错误,但此处是使用而非定义,不重复扣分。扣分仅因定义错误已扣。
(3)营业员进程实现(满分3分)
得分:2分
理由:营业员进程基本正确:循环P(hao)等待顾客(正确)、叫号和服务(正确)、V(wait)通知顾客(正确)。但缺少对座位区的互斥访问(标准答案有mutex保护座位区),但本题中座位区仅计数,无需互斥,学生方案可行。wait初值错误导致同步问题,但定义错误已扣分,此处不重复扣。扣1分因未实现座位区互斥(但非必需)。
题目总分:1+2+2=5分
登录后发布评论
暂无评论,来抢沙发