文章

35

粉丝

0

获赞

0

访问

1.4k

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


评分及理由

(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分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发