文章

130

粉丝

0

获赞

0

访问

6.0k

头像
2023年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年8月18日 22:16
阅读数 83

1):我们应该先交换lock与key,然后判断key是否等于false,lock是否等于true;swap key,lock  if(key==FALSE&&lock==TRUE)    

           在退出时应当将lock开锁            lock=FALSE;

2):不可以,因为这是由软件实现的互换而swap是由原语实现的,前者可能会导致当多个线程进入时,实现不了key和lock的真正交换;


评分及理由

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

得分:2分

理由:

  • 学生正确指出了退出区应将lock = TRUE改为lock = FALSE(1分),符合标准答案要求。
  • 但进入区的修改不完全正确。学生提出先交换后判断key == FALSE && lock == TRUE,但未将if改为while(1分)。标准答案要求必须使用while循环实现轮询,否则无法保证互斥。
  • 逻辑错误扣分:未使用while循环会导致互斥失败(扣1分),且条件判断逻辑冗余(扣1分)。

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

得分:3分

理由:

  • 学生正确回答了“不可以”(1分),并指出newSwap是软件实现,无法保证原子性(1分)。
  • 进一步说明多线程并发时可能导致交换失败(1分),与标准答案完全一致。

题目总分:2+3=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发