文章
158
粉丝
0
获赞
0
访问
62.5k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了两个信号量:my=1 和 mz=1。标准答案需要三个信号量:mutex_y1、mutex_y2 和 mutex_z。学生只用一个my信号量保护y变量,无法正确处理thread1、thread2和thread3对y的并发访问需求。缺少对y的细粒度互斥控制,扣2分。得1分。
(2)thread1实现得分及理由(满分1分)
thread1正确使用了P(my)和V(my)保护对y的访问,虽然信号量设计有缺陷,但在这个线程中的使用逻辑正确。得1分。
(3)thread2实现得分及理由(满分1分)
thread2正确使用了P(my)、P(mz)和相应的V操作保护对y和z的访问,信号量获取顺序合理。得1分。
(4)thread3实现得分及理由(满分3分)
thread3中存在严重逻辑错误:在y=add(y,z)中,第二个参数应该是w而不是z,这会导致计算错误。此外,信号量设计无法确保thread1、thread2和thread3对y的互斥访问。由于存在计算逻辑错误,扣2分;信号量设计缺陷扣1分。得0分。
题目总分:1+1+1+0=3分
登录后发布评论
暂无评论,来抢沙发