文章
255
粉丝
0
获赞
0
访问
62.2k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了两个信号量Y和Z,分别用于保护y和z的互斥访问。但标准答案中需要三个信号量:mutex_y1用于thread1和thread3对y的互斥,mutex_y2用于thread2和thread3对y的互斥,mutex_z用于z的互斥。学生只定义了两个信号量,无法实现thread1和thread2对y的并发访问,缺少对y的细粒度控制。因此扣2分,得1分。
(2)thread1实现得分及理由(满分1分)
thread1中正确使用P(Y)和V(Y)保护了对y的访问,逻辑正确。得1分。
(3)thread2实现得分及理由(满分2分)
thread2中先P(Z)后P(Y)的顺序与标准答案不同,但不会造成死锁。然而由于信号量设计缺陷,无法实现thread1和thread2对y的并发访问。考虑到基本逻辑正确,扣1分,得1分。
(4)thread3实现得分及理由(满分2分)
thread3中对z的操作正确使用了P(Z)/V(Z),但对y的操作只使用了一个Y信号量,无法实现与thread1和thread2的并发。此外,第二次识别中有"w.n=1"的误写,但根据上下文判断为w.a=1的识别错误,不扣分。综合考虑扣1分,得1分。
题目总分:1+1+1+1=4分
登录后发布评论
暂无评论,来抢沙发