文章
175
粉丝
0
获赞
1
访问
22.6k

评分及理由
(1)得分及理由(满分4分)
学生答案中第一处修改将"if(key==TRUE)"改为"if(lock==False)",这是错误的。正确的应该是改为"while(key==TRUE)",因为需要循环等待直到能够获得锁。学生没有理解到需要循环检查而不是单次判断,这会导致互斥失败,扣2分。
第二处修改将"lock=TRUE"改为"lock=FALSE"是正确的,这符合退出临界区时需要释放锁的要求,得2分。
本小题得分:2分
(2)得分及理由(满分3分)
学生认为可以用newSwap函数调用代替swap指令,这是错误的。swap指令是原子操作,而函数调用在多线程环境下无法保证原子性,可能导致多个线程同时进入临界区。学生没有理解硬件原子操作与普通函数调用的本质区别。
本小题得分:0分
题目总分:2+0=2分
登录后发布评论
暂无评论,来抢沙发