文章

296

粉丝

0

获赞

0

访问

21.5k

头像
2011年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月23日 19:39
阅读数 11


评分及理由

(1)信号量定义部分得分及理由(满分2分)

学生定义了四个信号量:mutex=1(互斥使用取号机)、seats=10(座位数量)、numbers=0(号码数量)、service=0(等待叫号)。这些信号量的含义和初值基本正确,符合题目要求。但标准答案中更明确地区分了座位区互斥和取号机互斥,这里学生用mutex同时保护取号机,虽然可行但不够精确,不过不扣分。得2分。

(2)顾客进程实现得分及理由(满分3分)

顾客进程中,学生先P(seats)检查空座位,再P(mutex)进入取号机临界区取号,然后V(mutex)释放取号机,V(numbers)增加等待顾客数,最后P(service)等待叫号。这里存在一个逻辑错误:在"等待叫号"和P(service)的顺序上,两次识别结果不一致,但核心问题是学生将"等待叫号"放在P(service)之前或之后,这会导致顾客在收到服务信号前就可能被服务,破坏了同步关系。应确保P(service)在"等待叫号"语义之前。扣1分。得2分。

(3)营业员进程实现得分及理由(满分3分)

营业员进程中,学生使用while循环,先P(numbers)检查有等待顾客,然后V(seats)释放座位,V(service)通知顾客,最后服务。这里存在两个问题:首先,缺少对座位区的互斥保护,标准答案中营业员在让顾客离开座位区时使用了mutex保护;其次,服务顺序应该是先叫号再服务,但学生代码中V(service)在服务之前,这可能导致顾客在营业员准备服务前就离开等待区。这些逻辑错误扣2分。得1分。

题目总分:2+2+1=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发