文章
327
粉丝
40
获赞
2
访问
40.2k
CoBegin{
semaphore a_done = 0;//操作A完成
semaphore c_done = 0;//操作C完成
T1(){
A执行完成;
signal(a_done);
wait(c_done);
E执行完成;
F执行完成;
}
T2(){
B执行完成;
wait(a_done);
C执行完成;
signal(c_done);
D执行完成;
}
}
CoEnd
评分及理由
(1)得分及理由(满分8分)
学生答案使用了两个信号量a_done和c_done,分别表示操作A完成和操作C完成。通过信号量的wait和signal操作,基本实现了线程T1和T2之间的同步关系:
但学生答案存在以下逻辑错误:
因此,学生答案部分正确,但遗漏了关键同步点(B完成对C的约束)。根据标准答案,需要保证C等待A和B两个条件,但学生只实现了等待A。扣分点:遗漏B的同步,导致逻辑不完整。
得分:6分(满分8分,扣2分)。
题目总分:6分
登录后发布评论
暂无评论,来抢沙发