文章
68
粉丝
0
获赞
0
访问
1.2k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了empty=10(空座位数)、full=0(等待人数)、mutex=1(取号机互斥)和Signal=0(叫号同步信号量),这些信号量的含义和初值基本正确,符合题目要求。但Signal的命名不够规范(通常使用service或类似名称),不过不影响理解,因此不扣分。得2分。
(2)顾客进程实现得分及理由(满分3分)
顾客进程中,先P(empty)检查空座位,再P(mutex)互斥使用取号机,取号后V(mutex)释放取号机,然后V(full)增加等待人数,最后P(Signal)等待叫号。这些步骤顺序正确,实现了互斥和同步。但缺少进入座位区的具体操作描述(如"进入等待区"),不过题目未明确要求写出该操作,且逻辑正确,因此不扣分。得3分。
(3)营业员进程实现得分及理由(满分3分)
营业员进程中,先P(full)检查是否有等待顾客,然后叫号,接着服务顾客,最后V(Signal)通知顾客服务开始和V(empty)释放一个空座位。这里存在逻辑错误:V(Signal)应该在叫号后立即执行,而不是在服务完成后执行,否则顾客在服务完成后才被通知,不符合"等待叫号后获得服务"的顺序。此外,缺少对座位区的互斥操作(如离开座位区),但题目未强调该操作,主要扣分点在于Signal操作的顺序错误。扣1分。得2分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发