文章
133
粉丝
0
获赞
0
访问
5.6k

评分及理由
(1)得分及理由(满分4分)
学生答案正确指出了两处错误并给出了正确的修改:
if (key == TRUE) 改为 while (key == TRUE),这是正确的,因为需要循环等待直到成功获得锁。lock = TRUE; 改为 lock = FALSE;,这也是正确的,因为退出临界区后需要释放锁。这两处修改与标准答案完全一致。因此,本题得分为4分。
(2)得分及理由(满分3分)
学生答案正确回答了“不可以用函数调用语句”,并给出了理由:“因为要保证其原子性,不能被打断。一旦被打断,访问临界区可能产生错误”。
该理由准确指出了核心问题:swap指令是硬件实现的原子操作,而函数调用不具备原子性,在并发执行时可能导致多个线程同时进入临界区。虽然学生的解释比标准答案简略,但核心观点(原子性、不能被打断、可能导致错误)是正确的。因此,本题得分为3分。
题目总分:4+3=7分
登录后发布评论
暂无评论,来抢沙发