文章
118
粉丝
0
获赞
0
访问
13.9k

评分及理由
(1)得分及理由(满分4分)
学生答案中第一处修改将"if(key == TRUE)"改为"if(key == false)",这仍然是条件判断而非循环等待,无法实现互斥,因为线程可能直接跳过交换操作进入临界区。标准答案要求改为"while (key == TRUE)"才能实现持续轮询。第二处修改将"lock = TRUE"改为"lock = false"正确,符合解锁逻辑。由于第一处关键逻辑错误,扣2分。得分:2分
(2)得分及理由(满分3分)
学生正确判断"不可以",并指出函数调用无法保证交换动作的原子性,但给出的理由是"可能导致死锁"不准确(实际问题是可能导致多个线程同时进入临界区)。标准答案强调swap指令的原子性破坏会导致互斥失败。理由部分表述不完整但核心正确,扣1分。得分:2分
题目总分:2+2=4分
登录后发布评论
暂无评论,来抢沙发