文章

296

粉丝

0

获赞

0

访问

21.9k

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


评分及理由

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

得分:2分

理由:学生定义了三个信号量mutex_X、mutex_Y、mutex_Z,分别用于保护x、y、z三个全局变量。其中mutex_X的定义是多余的,因为x变量只在thread1中被读取,没有写操作,且没有与其他线程产生冲突,因此不需要互斥保护。标准答案中只定义了mutex_y1、mutex_y2和mutex_z三个信号量,更精确地处理了y变量的并发访问问题。扣1分。

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

得分:0.5分

理由:thread1中对x和y的访问都加了锁,虽然保证了互斥,但锁的粒度太大,影响了并发性能。特别是对x的加锁是不必要的。标准答案中只对y进行互斥保护,且使用专门的mutex_y1信号量。扣0.5分。

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

得分:0.5分

理由:thread2中对y和z的访问顺序加锁,虽然保证了互斥,但锁的获取顺序可能与其他线程产生死锁风险。标准答案中使用mutex_y2和mutex_z,更精确地控制互斥范围。扣0.5分。

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

得分:1.5分

理由:thread3中对z的访问加锁正确(1分),但对y的访问只使用了一个mutex_Y信号量,没有考虑到y可能被多个线程同时访问的情况。标准答案中需要对y加两个互斥锁(mutex_y1和mutex_y2)来确保与thread1和thread2的互斥。扣1.5分。

题目总分:2+0.5+0.5+1.5=4.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发