文章
132
粉丝
19
获赞
402
访问
60.5k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了三个信号量:mutex_13y、mutex_23y、mutex_23z,分别对应thread1与thread3对y的互斥、thread2与thread3对y的互斥、thread2与thread3对z的互斥。这与标准答案的mutex_y1、mutex_y2、mutex_z完全对应,只是命名不同,但功能一致。因此得3分。
(2)thread1代码得分及理由(满分1分)
thread1中正确使用P(mutex_13y)和V(mutex_13y)保护了对y的访问,与标准答案一致。得1分。
(3)thread2代码得分及理由(满分2分)
thread2中正确使用P(mutex_23y)和P(mutex_23z)保护了对y和z的访问,并在操作后正确释放信号量,与标准答案一致。得2分。
(4)thread3代码得分及理由(满分2分)
thread3中对z的访问保护正确,但对y的访问只使用了mutex_23y,缺少对mutex_13y的保护。标准答案中thread3在修改y时需要同时获取mutex_y1和mutex_y2,以确保与thread1和thread2都互斥。这里学生只使用了mutex_23y,会导致thread1和thread3在访问y时可能不互斥,存在逻辑错误。扣1分,得1分。
题目总分:3+1+2+1=7分
登录后发布评论
暂无评论,来抢沙发