文章
278
粉丝
0
获赞
0
访问
37.2k

评分及理由
(1)得分及理由(满分4分)
学生答案中,第一处修改将进入区的条件判断从 `if(key = TRUE)` 改为 `if(lock == FALSE)`,这与标准答案要求的将条件判断改为循环等待(`while (key == TRUE)`)不一致。虽然修改后的条件在逻辑上可能在某些情况下起到互斥作用,但未采用轮询方式,无法确保在多个线程竞争时正确实现互斥,因此存在逻辑错误。第二处修改将退出区的 `lock = TRUE` 改为 `lock = FALSE`,这与标准答案一致,正确实现了解锁操作。根据评分标准,逻辑错误需扣分,第一处错误扣2分,第二处正确得2分,因此本小题得2分。
(2)得分及理由(满分3分)
学生答案正确指出不能用 `newSwap` 函数代替 `swap` 指令,并给出了理由:`swap` 指令由硬件执行,过程中不会被中断,而 `newSwap` 函数执行过程中可能被中断。这与标准答案的核心观点一致,即 `swap` 是原子操作,而函数调用无法保证原子性。理由描述准确,因此本小题得3分。
题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发