文章
164
粉丝
0
获赞
1
访问
43.9k
(1)进入区的等待方式存在错误,if语句仅会执行一次判断,退出区语句错误,未正常释放锁。将if改为while,退出区的lock改为false
(2)不可以,因为swap的执行具有原子性,不可被打断,而函数进程无法实现对key,lock修改的互斥,导致结果出现错误。
评分及理由
(1)得分及理由(满分4分)
学生正确指出了两处错误:①进入区使用if语句应改为while语句;②退出区lock=TRUE应改为lock=FALSE。修改方式与标准答案完全一致,且理由充分。因此得4分。
(2)得分及理由(满分3分)
学生正确回答了“不可以”,并指出了关键原因:swap指令具有原子性,而函数调用无法保证原子性,可能导致多个线程同时进入临界区。理由与标准答案一致,但未详细举例说明并发执行时的具体错误情况。由于核心要点已正确,扣1分。因此得2分。
题目总分:4+2=6分
登录后发布评论
暂无评论,来抢沙发