文章

317

粉丝

1

获赞

220

访问

83.0k

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


评分及理由

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

学生答案指出需要修改进入区和退出区的代码,并给出了具体的修改语句:进入区将 bool key = TRUE; 改为 bool key = FALSE;,退出区将 lock = TRUE; 改为 lock = FALSE;。然而,学生的修改存在逻辑错误:

  1. 进入区修改错误:原伪代码中 if (key == TRUE) swap key, lock; 的主要问题在于 if 应改为 while 以实现忙等待,而学生将其改为 bool key = FALSE;if (key == lock);,这完全改变了原意,无法实现互斥。因此,进入区修改错误。
  2. 退出区修改正确:学生将 lock = TRUE; 改为 lock = FALSE;,这与标准答案一致,是正确的。

由于学生只正确修改了退出区(1处正确),但进入区修改错误(1处错误),且标准答案要求修改两处(进入区的if改为while和退出区的lock = TRUE改为lock = FALSE),因此给予部分分数。扣分:进入区错误扣2分,退出区正确得1分,本小题得1分。

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

学生回答“不可以”,并给出理由:“lock为共享变量,单纯使用newswap函数,并不能实现对lock互斥访问”。这一回答基本正确,指出了newSwap函数不能保证原子性,但理由表述不够精确(标准答案强调原子操作和并发执行问题)。考虑到学生抓住了核心原因(无法实现互斥),且根据“禁止扣分”原则,不因表述细节扣分,因此给予满分。

本小题得3分。

题目总分:1+3=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发