文章

102

粉丝

0

获赞

3

访问

5.7k

头像
2017年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年11月30日 17:46
阅读数 31


评分及理由

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

学生定义了两个信号量:mutex-y 和 mutex-z,分别用于保护变量 y 和 z 的互斥访问。标准答案中使用了三个信号量:mutex_y1、mutex_y2 和 mutex_z,其中 mutex_y1 和 mutex_y2 分别用于 thread1 与 thread3、thread2 与 thread3 对 y 的互斥访问。学生的方案只用一个 mutex-y 保护 y,虽然能保证互斥,但并发度不如标准答案高(例如 thread1 和 thread2 不能同时读 y)。因此扣1分。信号量命名和初始值正确,不扣分。得分:2分。

(2)thread1 代码得分及理由(满分1分)

thread1 中正确使用 P(mutex-y) 和 V(mutex-y) 保护了对 y 的访问,逻辑正确。得1分。

(3)thread2 代码得分及理由(满分2分)

thread2 中先 P(mutex-y) 再 P(mutex-z),然后执行 w=add(y,z),最后 V(mutex-z) 和 V(mutex-y),顺序正确,互斥保护完整。得2分。

(4)thread3 代码得分及理由(满分2分)

thread3 中先对 z 进行 P-V 操作保护,然后对 y 进行 P-V 操作保护,逻辑正确。虽然只用一个 mutex-y 保护 y,不如标准答案并发度高,但题目要求“最大程度地并发执行”是优化目标,学生的方案在互斥正确的前提下是可接受的,且题目没有要求必须达到最优并发度,因此不扣分。得2分。

题目总分:2+1+2+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发