文章
149
粉丝
0
获赞
0
访问
56.4k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了mutex_y和mutex_z两个信号量,但缺少对y变量的细粒度互斥控制。标准答案需要mutex_y1和mutex_y2两个信号量来分别控制thread1-thread3和thread2-thread3对y的访问,以实现最大并发。学生只用一个mutex_y会导致不必要的串行化。扣2分。
得分:1分
(2)thread1实现得分及理由(满分1分)
thread1正确使用了P(mutex_y)和V(mutex_y)来保护对y的访问,逻辑正确。得1分。
得分:1分
(3)thread2实现得分及理由(满分2分)
thread2同时获取了mutex_z和mutex_y的锁,保护了对y和z的访问,逻辑正确。但使用的mutex_y不够细化,这已在信号量定义部分扣分,此处不重复扣分。得2分。
得分:2分
(4)thread3实现得分及理由(满分2分)
thread3对z的操作正确使用了mutex_z,但对y的操作只使用了一个mutex_y,没有实现thread1和thread2对y的并发访问。标准答案需要同时获取mutex_y1和mutex_y2来确保完全互斥。扣1分。
得分:1分
题目总分:1+1+2+1=5分
登录后发布评论
暂无评论,来抢沙发