文章
280
粉丝
1
获赞
8
访问
87.0k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了三个信号量:mutex_y1、mutex_y2、mutex_z,与标准答案一致,分别用于保护y和z的互斥访问。信号量初始值正确。得3分。
(2)thread1代码得分及理由(满分1分)
thread1中正确使用P(mutex_y1)和V(mutex_y1)保护了对y的访问。与标准答案一致。得1分。
(3)thread2代码得分及理由(满分1分)
thread2中正确使用P(mutex_y2)和P(mutex_z)保护了对y和z的访问,并按照获取顺序的逆序释放信号量。与标准答案一致。得1分。
(4)thread3代码得分及理由(满分3分)
thread3中对z的操作正确使用P(mutex_z)和V(mutex_z)保护。但在对y的操作中,第二次识别结果正确使用了P(mutex_y1)和P(mutex_y2)来获取两个信号量,但第一次识别结果中缺少P(mutex_y2),存在逻辑错误。根据评分规则,两次识别中只要有一次正确就不扣分,因此这里不扣分。但第二次识别结果中释放信号量的顺序为V(mutex_y2)后V(mutex_y1),与获取顺序P(mutex_y1)后P(mutex_y2)不完全逆序,存在潜在的死锁风险,属于逻辑错误,扣1分。得2分。
题目总分:3+1+1+2=7分
登录后发布评论
暂无评论,来抢沙发