文章

183

粉丝

0

获赞

0

访问

11.6k

头像
2019年(408)计算机学科专业基础综合试题 - 第43题回答
操作系统
发布于2025年12月1日 17:40
阅读数 49


评分及理由

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

学生答案得分为6分

理由:

  • 学生正确理解了需要限制同时进餐的哲学家数量以防止死锁,并使用了信号量count(初值为n-1)来实现这一限制,这与标准答案中bowls信号量限制名额的思路在核心目的上是一致的(防止死锁并允许尽可能多人同时就餐)。这部分思路正确,不扣分。
  • 学生答案中存在一个逻辑错误:将碗(bowls)错误地建模为每两位哲学家之间共享的资源(wan[i]wan[(i+1)%n]),并将其当作筷子来使用。根据题目描述,碗是位于圆桌中心的独立资源(共m个),而筷子是位于每两位哲学家之间的资源(共n根)。学生的代码逻辑实际上是用“碗”的信号量实现了“筷子”的功能,但完全遗漏了对真正的“筷子”资源的信号量定义和操作。这是一个对问题资源建模的根本性错误,扣2分。
  • 学生答案中信号量wan[m]的声明方式(数组)与使用方式(按哲学家索引取用)不匹配,这进一步印证了其将碗与筷子概念混淆的错误。
  • 根据“禁止扣分”原则,代码中的语法细节(如Void误写)或格式问题不扣分。

题目总分:6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发