文章
191
粉丝
0
获赞
0
访问
18.3k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了write、read、mutex三个信号量和一个计数器num,但缺少对y和z变量的细粒度互斥控制。标准答案使用mutex_y1、mutex_y2、mutex_z三个信号量分别保护y和z的访问,能实现更高程度的并发。学生的方案虽然能保证互斥,但并发度较低,因为当有读线程时完全阻塞写线程,反之亦然。得1分(仅实现了基本互斥功能)。
(2)thread1实现得分及理由(满分1分)
thread1实现了读者优先的读写互斥,但只涉及对y的读取,没有考虑thread3可能同时修改y和z的情况。虽然能保证数据安全,但并发度不如标准答案。得0.5分。
(3)thread2实现得分及理由(满分1分)
thread2同样使用读者优先方案,但需要同时读取y和z,在标准答案中需要两个信号量保护,而学生方案用统一的读写锁,虽然安全但并发度低。得0.5分。
(4)thread3实现得分及理由(满分3分)
thread3先获取read信号量阻止新读者,再获取write信号量进行写操作。但存在逻辑错误:在第一次识别结果中缺少v(read)操作,会导致死锁;第二次识别结果中补充了v(read)。考虑到识别可能出错,按正确版本评分。但方案仍然并发度不足,得1分。
题目总分:1+0.5+0.5+1=3分
登录后发布评论
暂无评论,来抢沙发