文章

459

粉丝

0

获赞

1

访问

58.9k

头像
2011年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月9日 18:48
阅读数 4


评分及理由

(1)得分及理由(满分8分)

学生答案整体思路正确,实现了基本的同步与互斥,但存在一个关键逻辑错误。具体分析如下:

  • 正确部分
    • 使用信号量 seat(初值10)控制等待座位数量,符合题目要求。
    • 使用信号量 mutex(初值1)保护取号机互斥访问,正确。
    • 使用信号量 full(初值0)表示等待顾客数,用于营业员同步,正确。
    • 顾客进程先 P(seat) 再取号,营业员进程先 P(full) 再叫号,流程顺序合理。
  • 错误部分
    • 信号量 service 的用法存在逻辑错误。学生将其初值设为1,并在顾客进程中执行 P(service) 等待服务,在营业员进程中执行 V(service) 通知顾客。这会导致第一个顾客无需等待叫号即可直接获得服务(因为 service 初值为1,第一个 P(service) 不会阻塞),破坏了“等待叫号”的同步逻辑。正确的做法应是 service 类信号量初值为0,确保顾客必须等待营业员叫号后才能继续。
  • 扣分:该逻辑错误导致同步机制不完整,扣除2分。
  • 得分:8 - 2 = 6分

题目总分:6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发