文章

190

粉丝

0

获赞

0

访问

27.9k

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


评分及理由

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

学生答案与标准答案在核心同步逻辑上存在差异,且存在逻辑错误。具体分析如下:

  • 信号量设置与作用:学生定义了三个信号量:Tmutex(铁锹互斥,初值1,正确)、Kmutex(坑数,初值3,作用与标准答案的sk类似,但用法有误)、shu(树苗数,初值0,作用与标准答案的water类似)。缺少了标准答案中代表“可使用的树坑数量”(即empty)的信号量。这是一个关键缺失,导致后续同步逻辑不完整。
  • 甲(挖坑者)的流程:学生代码中,甲在挖坑后没有通知乙有坑可用(即缺少signal(empty)操作)。这使得乙无法知道何时可以开始工作,甲和乙之间失去了同步。这是一个严重的逻辑错误。
  • 乙(放树苗填土者)的流程:学生代码中,乙直接等待铁锹(Tmutex),而没有先等待有可用的树坑(即缺少wait(empty)操作)。这会导致乙可能在甲挖好坑之前就抢到铁锹去执行“放树苗填土”,逻辑上错误。乙在完成后释放了坑数(Kmutex)和树苗数(shu),这部分同步丙是合理的。
  • 丙(浇水者)的流程:正确,等待树苗信号(shu/water)然后浇水。
  • 总结:由于缺少关键的“empty”信号量,导致甲和乙之间的生产-消费关系(坑作为缓冲区)无法正确同步。乙可能在没有坑的情况下试图工作,且甲挖坑后乙无法被唤醒。核心同步逻辑存在缺陷。
  • 扣分:本题考察同步互斥关系的完整建模。学生答案未能正确描述“挖坑-放树苗填土”这一必需的前后顺序,属于重大逻辑错误。考虑到部分信号量(Tmutex, shu)设置正确,且丙的流程正确,给予一定的步骤分。
  • 得分:2分(满分7分)。

题目总分:2分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发