文章

137

粉丝

0

获赞

0

访问

8.4k

头像
2017年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年10月23日 16:23
阅读数 6


评分及理由

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

学生定义了两个信号量Y和Z,分别用于保护y和z变量。标准答案使用了三个信号量:mutex_y1、mutex_y2和mutex_z,其中y变量需要两个信号量来分别保护thread1与thread3、thread2与thread3之间的互斥访问。学生只用一个Y信号量保护y变量,虽然能保证互斥,但会降低并发度(比如thread1和thread2无法同时访问y)。因此扣1分。信号量Z的定义正确,得1分。本部分得2分。

(2)thread1实现得分及理由(满分1分)

thread1中正确使用了P(Y)和V(Y)来保护对y的访问,虽然信号量设计不够优化,但实现了基本的互斥功能。得1分。

(3)thread2实现得分及理由(满分2分)

thread2中同时获取了Z和Y信号量,保护了对y和z的访问,逻辑正确。但获取顺序与标准答案不同(标准答案先Y后Z,学生先Z后Y),这可能在某些情况下产生死锁风险。不过从互斥的角度看,实现基本正确。扣1分。得1分。

(4)thread3实现得分及理由(满分2分)

thread3中对z的操作正确使用了P(Z)/V(Z),得1分。对y的操作正确使用了P(Y)/V(Y),得1分。虽然信号量设计不够优化,但实现了基本的互斥功能。本部分得2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发