文章
187
粉丝
0
获赞
3
访问
37.8k

评分及理由
(1)得分及理由(满分4分)
学生回答指出第一处错误是进入区的条件判断语句,并给出了修改方向(将if改为while),但修改的具体内容不完整且表述有误(写成了“if (key == TRUE || lock == FALSE)”和“lock=”)。第二处错误指出了退出区的“swap key, lock;”有问题,但未给出正确修改(应为“lock = FALSE;”)。学生识别出了两处错误的位置,但对错误的描述和修正不准确。根据标准答案,第一处修改为“while (key == TRUE) swap key, lock;”得2分,第二处修改为“lock = FALSE;”得2分。学生答案中部分思路正确(如指出if应改为循环、退出区语句错误),但未给出完整正确的语句,因此酌情扣分。得分:2分(第一处思路部分正确给1分,第二处指出错误但未正确修正给1分)。
(2)得分及理由(满分3分)
学生回答“不能”,理由是指出newSwap函数中的交换操作不是原子性的,无法保证在一条指令内完成交换。这与标准答案的核心观点一致(即函数调用无法保证原子性,可能导致多个线程同时进入临界区)。学生答案虽未详细展开并发执行的具体例子,但抓住了关键点(非原子性)。因此给满分。得分:3分。
题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发