文章

60

粉丝

0

获赞

0

访问

3.8k

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

(1)题中进入区的swap key,lock语句会让key=FALSE,lock=TRUE,并不满足线程进入临界区的条件。

应修改为:

bool key = TRUE;

临界区;

if (key==TRUE)

   swap key, lock;

(2)

不可以。因为lock为线程间共享的变量,对lock的修改需要互斥进行。“newSwap(&key, &lock)”语句没有进行互斥,会导致lock的值频繁被改,导致进程的同步互斥关系混乱。


评分及理由

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

学生指出进入区的swap语句存在问题,但给出的修改方案错误。原代码中if条件应改为while循环以实现忙等待,但学生仍保留if条件,且未修改退出区的lock赋值语句(应为lock=FALSE)。学生仅部分识别问题,但修改方向错误,未能正确实现互斥。扣分点:未正确修改进入区条件(应改为while循环),未修改退出区语句。得1分。

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

学生正确回答“不可以”,理由基本正确:指出newSwap函数调用缺乏互斥保护,会导致lock值被频繁修改,破坏同步互斥。但未深入解释原子操作的必要性及具体并发执行场景(如指令交错导致互斥失败)。理由表述不够完整,但核心观点正确。扣1分。得2分。

题目总分:1+2=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发