文章
73
粉丝
0
获赞
0
访问
5.0k
评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了三个信号量 mutex_y1、mutex_y2、mutex_z,与标准答案一致,用于保护对变量 y 和 z 的互斥访问。信号量初始值均为1,正确。得3分。
(2)thread1代码得分及理由(满分1分)
thread1 中,学生在调用 add(x, y) 前后正确地使用了 P(mutex_y1) 和 V(mutex_y1) 来保护对全局变量 y 的读操作,与标准答案一致。得1分。
(3)thread2代码得分及理由(满分2分)
thread2 中,学生需要访问 y 和 z。标准答案中使用了 mutex_y2 和 mutex_z 来分别保护 y 和 z,以实现最大程度的并发。学生的代码中使用了 mutex_z 和 mutex_y1 来保护对 z 和 y 的访问。这里存在逻辑错误:
由于存在上述逻辑错误,扣2分。得0分。
(4)thread3代码得分及理由(满分2分)
thread3 中,学生先对 z 进行操作,加锁 mutex_z,正确。然后对 y 进行操作,需要加锁 mutex_y1 和 mutex_y2,学生的代码中正确地使用了 P(mutex_y1) 和 P(mutex_y2) 以及相应的 V 操作,与标准答案一致。得2分。
题目总分:3+1+0+2=6分
登录后发布评论
暂无评论,来抢沙发