文章

123

粉丝

93

获赞

1

访问

16.7k

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


评分及理由

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

学生定义了两个信号量:mutex_y和mutex_z,分别用于保护y和z的互斥访问。但标准答案中需要三个信号量,因为thread1和thread2都需要访问y,且thread3同时修改y和z,需要更细粒度的控制。学生只定义了两个信号量,缺少对y的细粒度控制,扣1分。得分:2分

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

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

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

thread2中先申请mutex_y再申请mutex_z,然后执行add(y,z),最后按相反顺序释放。但由于缺少细粒度控制,当thread1和thread2同时访问y时会出现不必要的互斥,降低了并发度。扣1分。得分:1分

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

thread3中对z的操作正确加锁,但对y的操作只使用了一个mutex_y,没有考虑thread1和thread2可能同时访问y的情况,这会降低并发度。扣1分。得分:1分

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发