文章

304

粉丝

0

获赞

0

访问

61.5k

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


评分及理由

(1)信号量定义及初值(满分约2分)

学生定义了四个信号量:num=3, dig=0, water=0, mutex=1。其中:
• num 对应标准答案中的 sk,表示可挖的树坑数量,初值3正确。
• dig 对应标准答案中的 empty,表示已挖好可用的树坑,初值0正确。
• water 对应标准答案中的 water,表示需要浇水的树苗,初值0正确。
• mutex 对应标准答案中的 mutexT,用于铁锹互斥,初值1正确。
信号量定义完整且初值正确,与标准答案在逻辑上等价。得2分。

(2)甲、乙、丙三人的同步互斥逻辑(满分约5分)

• 甲:先 P(num) 检查能否挖坑(树坑数小于3),再 P(mutex) 获取铁锹,挖坑后 V(mutex) 释放铁锹,V(dig) 通知乙有坑可用。逻辑正确。得1.7分。
• 乙:先 P(dig) 等待有坑,然后“放树苗”(此操作无需互斥,学生未加互斥是正确的),再 P(mutex) 获取铁锹填土,V(mutex) 释放铁锹,V(water) 通知丙浇水。逻辑正确。得1.7分。
• 丙:先 P(water) 等待浇水信号,浇水后 V(num) 增加一个可挖坑位。这里与标准答案不同:标准答案中乙在填土后同时 V(sk) 和 V(water),而学生将 V(num) 放在丙浇水之后。这两种方式都是正确的,因为只要保证每完成一棵树(浇水后)才释放一个新的挖坑名额,就能满足“树坑数量小于3”的条件。学生的逻辑能保证同步,且没有破坏互斥关系。得1.6分。
本部分合计5分。

(3)整体代码结构与规范(无单独分值,已包含在上述评分中)

学生代码结构清晰,使用了P/V操作(与wait/signal等价),循环和信号量使用正确。整体同步互斥关系描述正确。

题目总分:2+5=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发