文章

84

粉丝

0

获赞

0

访问

3.4k

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


评分及理由

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

学生定义了四个信号量:service(初值1)、seat(初值10)、mutex(初值1)、custom(初值0)。其中:

  • seat(空座位数量)和custom(已取号顾客数量)正确对应了生产者-消费者模型中的empty和full信号量,初值设置合理,得1分
  • mutex(互斥取号)正确保护了取号机的互斥访问,得0.5分
  • service信号量的使用存在逻辑问题(详见后续分析),但初值设置尚可,不扣分也不加分

本部分得分:1.5分

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

顾客进程逻辑分析:

  • P(seat)和P(mutex)顺序正确,保护了取号机的互斥访问,得1分
  • V(custom)正确增加了等待顾客计数,得0.5分
  • 关键错误:缺少等待叫号的同步操作,直接用P(service)来获取服务,这会导致顾客在叫号前就尝试获取服务窗口,逻辑错误,扣1分
  • 缺少座位区的互斥保护,但考虑到题目描述较为简化,不严重扣分

本部分得分:1.5分

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

营业员进程逻辑分析:

  • P(custom)正确检查是否有等待顾客,得0.5分
  • V(seat)正确释放座位资源,得0.5分
  • 关键错误:V(service)的位置不当,应该在叫号后立即执行以唤醒对应顾客,而不是在服务完成后,这会导致同步时序错误,扣1分
  • 缺少座位区的互斥操作,但考虑到简化实现,不严重扣分

本部分得分:1分

题目总分:1.5+1.5+1=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发