文章

309

粉丝

0

获赞

1

访问

156.7k

头像
2023年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2026年8月23日 23:32
阅读数 114


评分及理由

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

学生指出“bool key=TRUE;”和“if(key==TRUE)”存在错误,并建议修改为“bool key=False;”和“if(key==false)”。该修改方案核心思想是改变key的初始值及判断条件,试图通过逻辑调整实现互斥。然而,标准答案要求修改的关键在于:①将“if”改为“while”实现轮询等待(否则无法防止多个线程同时进入临界区);②将退出区的“lock=TRUE”改为“lock=FALSE”实现解锁(否则其他线程永远无法进入)。学生的答案未涉及“while”循环和“lock=FALSE”解锁语句的修改,这两处是保证互斥和系统后续运行的关键逻辑。学生仅修改key初值和判断条件,无法解决题目伪代码中“if”单次判断导致两个线程同时进入临界区的问题,也无法纠正退出区错误的上锁逻辑,属于核心逻辑错误。因此,本题得0分。

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

学生回答“能”,理由是函数调用语句与指令功能一致且能完成值交换。标准答案明确要求回答“否”,核心原因在于swap指令是原子操作,而函数调用newSwap()不是原子的,当多个线程并发执行时,函数内部对共享变量lock的读-改-写操作可能被其他线程打断,导致两个线程同时进入临界区,破坏互斥性。学生未理解原子性在多线程互斥中的根本作用,错误认为功能等价即可替代,未指出并发执行时函数调用无法保证原子交换的关键缺陷,属于对核心概念的严重误解。本题得0分。

题目总分:0+0=0分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发