文章
281
粉丝
40
获赞
2
访问
24.2k
(1)
有两个错误
第一个错误,if(key == true)这句话错了,需要判断的不是key,是lock
第二个错误是lock = true,退出区需要把lock 置为false,让其他进程可以进入
(2)
不可以,因为swap指令是原子指令,需要保证原子性,newswap不具备原子性
可能会违反忙则等待的条件
评分及理由
(1)得分及理由(满分4分)
学生指出两个错误:一是if条件判断错误(应判断lock而非key),二是退出区lock赋值错误(应为FALSE而非TRUE)。但学生未正确修改第一处错误:标准答案要求将if改为while循环以实现轮询,而学生仅指出判断对象错误(实际判断key是正确的,但条件应为TRUE时循环)。学生正确指出退出区应改为lock=FALSE(得2分)。第一处错误修改不完整(应改为while循环且条件为key==TRUE),扣2分。本小题得2分。
(2)得分及理由(满分3分)
学生正确回答“不可以”(得1分),并指出原因是swap是原子操作而newSwap不是(得1分),且提到可能违反“忙则等待”(即互斥条件,得1分)。理由完整,符合标准答案。本小题得3分。
题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发