文章

782

粉丝

21

获赞

1

访问

178.8k

头像
2023年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月15日 15:39
阅读数 209


评分及理由

(1)得分及理由(满分4分)

学生第一次识别结果指出“i+(key==TRUE)”错误,应改为“while(lock==TRUE)”。第二次识别结果指出“if(key==TRUE)”错误,应改为“while(Lock==TRUE)”。

标准答案指出两处错误:第一处是进入区的判断条件应为while (key == TRUE);第二处是退出区应为lock = FALSE

学生的两次识别均只指出了第一处错误,并将条件修改为while(lock==TRUE)。这个修改思路与标准答案不完全一致,但逻辑上也是可行的(即轮询检查lock是否为TRUE,为TRUE则等待)。然而,学生没有指出第二处错误(退出区lock = TRUE应改为lock = FALSE)。由于题目要求找出所有错误语句并改正,且不增加语句条数,学生遗漏了第二处错误,因此不能给满分。

考虑到学生正确指出了第一处错误的核心在于将if改为while以实现轮询,尽管条件变量从key改为了lock,但其互斥逻辑在配合正确的退出区操作下也能实现(虽然与标准答案的轮询key的写法不同)。但因其未改正第二处错误,故扣分。第一问满分4分,扣2分。

得分:2分

(2)得分及理由(满分3分)

学生两次识别结果均回答“不能”,理由均为“函数调用不是原子操作,不具有不可中断性”。

标准答案的核心观点也是“否”,因为swap指令是原子操作,而函数调用无法保证原子性,可能导致多个线程同时进入临界区。

学生的回答准确指出了关键原因,与标准答案一致。

得分:3分

题目总分:2+3=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发