文章
63
粉丝
0
获赞
0
访问
2.5k
评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了三个信号量:y_13(线程1和3对y的互斥)、y_23(线程2和3对y的互斥)、z_23(线程2和3对z的互斥)。这与标准答案中的mutex_y1、mutex_y2、mutex_z对应,虽然命名不同但功能一致,且初始值均为1,正确实现了互斥信号的设置。因此得3分。
(2)thread1代码得分及理由(满分1分)
thread1中正确使用P(y_13)和V(y_13)保护了对y的访问,与标准答案一致。得1分。
(3)thread2代码得分及理由(满分2分)
thread2中正确使用P(y_23)和P(z_23)保护了对y和z的访问,且V操作顺序正确(先释放z后释放y),与标准答案一致。得2分。
(4)thread3代码得分及理由(满分2分)
thread3中对z的操作正确使用P(z_23)和V(z_23)保护。但对y的操作仅使用了P(y_23)和V(y_23),缺少对mutex_y1(即y_13)的互斥保护。在标准答案中,thread3修改y时需要同时获取mutex_y1和mutex_y2,因为thread1和thread2都可能访问y。学生答案中只保护了与thread2的互斥,未保护与thread1的互斥,存在逻辑错误。扣1分,得1分。
题目总分:3+1+2+1=7分
登录后发布评论
暂无评论,来抢沙发