文章
63
粉丝
0
获赞
0
访问
3.1k
1.if(key==TRUE)改为while(key==TRUE);退出区中的lock=TRUE改为lock=false
2.不可以,因为swap指令是由硬件实现了互斥的,而函数调用语句可能会被多个进程同时调用,无法保证lock值在多个进程中相等,因此无法实现临界区的互斥功能
评分及理由
(1)得分及理由(满分4分)
学生指出了两处错误:①将if(key==TRUE)改为while(key==TRUE);②将lock=TRUE改为lock=FALSE。这两处修改与标准答案完全一致,逻辑正确且完整。因此得4分。
(2)得分及理由(满分3分)
学生回答“不可以”,并解释了原因:swap指令由硬件实现互斥,而函数调用可能被多个进程同时调用,无法保证lock值相等,因此无法实现临界区互斥。虽然表述上“lock值在多个进程中相等”不够精确(应为“无法保证原子性”),但核心观点正确,即函数调用无法保证原子交换,会导致互斥失败。因此扣1分,得2分。
题目总分:4+2=6分
登录后发布评论
暂无评论,来抢沙发