文章
35
粉丝
0
获赞
0
访问
1.4k
评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了四个信号量:mutex(初值1)、empty(初值10)、full(初值0)、service(初值0)。这些信号量的含义和初值设置正确,符合生产者-消费者模型的基本要求。其中mutex用于取号机互斥,empty和full用于座位区的同步,service用于营业员与顾客之间的服务同步。因此该部分得2分。
(2)顾客进程实现得分及理由(满分3分)
顾客进程的逻辑基本正确:先P(empty)检查空座位,再P(mutex)互斥使用取号机,获取号码后V(mutex)释放取号机,然后V(full)通知营业员有顾客等待,最后P(service)等待被叫号。但存在一个逻辑错误:顾客在获取号码后没有明确进入座位区的操作,虽然通过empty和full信号量隐含了座位管理,但缺少对座位区的显式互斥保护。按照标准答案,应该在V(full)前增加对座位区的互斥操作。考虑到这是考试题,需要严格实现,扣1分。得2分。
(3)营业员进程实现得分及理由(满分3分)
营业员进程存在严重逻辑错误:先P(full)检查有等待顾客,然后直接V(empty)释放空座位,接着V(service)通知顾客,最后服务顾客。这里的问题在于:①在叫号前就释放了空座位,逻辑顺序错误;②缺少对座位区的互斥操作;③服务信号量的V操作应该在叫号之后、服务之前。这些错误导致同步关系混乱,扣2分。得1分。
题目总分:2+2+1=5分
登录后发布评论
暂无评论,来抢沙发