文章

438

粉丝

0

获赞

0

访问

76.3k

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


评分及理由

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

学生定义了mutexY和mutexZ两个信号量,分别用于保护y和z的互斥访问。但标准答案使用了mutex_y1、mutex_y2、mutex_z三个信号量,这是因为thread1和thread2都需要访问y,但thread3对y的修改需要同时与thread1和thread2互斥。学生只用一个mutexY保护y,虽然能保证互斥,但会降低并发度(例如thread1和thread2不能同时执行)。因此扣1分。

得分:2分

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

thread1正确使用了P(mutexY)和V(mutexY)来保护对y的访问,逻辑正确。

得分:1分

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

thread2需要同时访问y和z,学生正确使用了P(mutexY)和P(mutexZ)来获取两个信号量,但获取顺序与标准答案不同。由于学生只使用一个mutexY,虽然能保证互斥,但并发度不如标准答案。考虑到基本逻辑正确,扣1分。

得分:1分

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

thread3对z的访问保护正确,但对y的访问只使用了单个mutexY。在标准答案中,thread3需要同时获取mutex_y1和mutex_y2来确保与thread1和thread2的互斥。学生的实现虽然能保证互斥,但会降低并发度。扣1分。

得分:1分

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发