文章
117
粉丝
160
获赞
0
访问
3.7k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了四个信号量:set=10(表示空座位数)、customer=0(表示等待顾客数)、mutex=1(互斥取号)、serve=0(同步服务)。这些信号量的含义和初值基本正确,但serve信号量的注释不完整("当serve被营业员+1才"),不过核心定义正确。扣0.5分。得1.5分。
(2)顾客进程实现得分及理由(满分3分)
顾客进程流程正确:先P(set)检查空座位,再P(mutex)互斥取号,取号后V(mutex)释放取号机,然后V(customer)增加等待顾客数,接着等待叫号(这里隐含了P(serve)操作),最后获得服务。但标准答案中顾客进入座位区需要互斥保护,这里缺少对座位区的互斥操作(P(mutex)和V(mutex)围绕"进入座位区")。扣1分。得2分。
(3)营业员进程实现得分及理由(满分3分)
营业员进程流程基本正确:先P(customer)检查有等待顾客,然后P(mutex)互斥叫号,叫号后V(mutex)释放互斥锁,V(set)释放空座位,V(serve)通知顾客开始服务,最后为顾客服务。但标准答案中顾客离开座位区需要互斥保护,这里缺少对座位区的互斥操作(P(mutex)和V(mutex)围绕"顾客离开座位区")。扣1分。得2分。
题目总分:1.5+2+2=5.5分
登录后发布评论
暂无评论,来抢沙发