文章

123

粉丝

93

获赞

1

访问

16.7k

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


评分及理由

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

学生定义了两个信号量:mutex_y 和 mutex_z,分别用于保护变量 y 和 z 的互斥访问。标准答案中使用了三个信号量:mutex_y1、mutex_y2 和 mutex_z,其中 mutex_y1 用于 thread1 与 thread3 对 y 的互斥,mutex_y2 用于 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)。这里对 y 和 z 的互斥保护是正确的,但由于使用了单一的 mutex_y,会导致与 thread1 的并发度降低。逻辑正确但并发度不足,扣1分。得分:1分

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

thread3 中先对 z 进行 P/V 操作,然后对 y 进行 P/V 操作。这里对 y 的访问只使用了一个 mutex_y,而标准答案中需要同时获取 mutex_y1 和 mutex_y2 来避免与 thread1 和 thread2 的冲突。学生的方案会导致 thread3 在修改 y 时,thread1 和 thread2 中有一个可能无法并发执行,降低了并发度。逻辑正确但并发度不足,扣1分。得分:1分

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发