文章
115
粉丝
0
获赞
0
访问
8.0k

评分及理由
(1)信号量定义及初值(满分2分)
得分:2分
理由:学生正确定义了ac和ce两个信号量,初值均为0,与标准答案中的简化版本一致。信号量的作用描述清晰,ac用于控制A和C的执行顺序,ce用于控制C和E的执行顺序。
(2)线程T1的同步操作(满分3分)
得分:2分
理由:T1中执行A后signal(ac)正确,执行E前wait(ce)正确。但存在两个问题:1)在E完成后缺少对F的同步控制,标准答案中F在E完成后执行,但学生代码中E后直接执行F,由于F在E完成后执行且在同一线程内,这个顺序本身正确,但缺少信号量控制(标准答案简化版本中确实没有为EF设置信号量,所以这里不扣分)。主要扣分点是2)代码中使用了while(1)循环,这是题目没有要求的额外逻辑,会导致程序无法正常结束,属于逻辑错误,扣1分。
(3)线程T2的同步操作(满分3分)
得分:2分
理由:T2中执行B后没有等待(正确,因为B没有前置依赖),执行C前wait(ac)正确,执行C后signal(ce)正确,执行D前没有等待(正确,因为D在C后执行且在同一线程内)。主要扣分点同样是使用了while(1)循环,属于逻辑错误,扣1分。
题目总分:2+2+2=6分
登录后发布评论
暂无评论,来抢沙发