文章

281

粉丝

40

获赞

2

访问

24.2k

头像
2023年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年9月11日 20:28
阅读数 71

(1) 

有两个错误

第一个错误,if(key == TRUE) swap key,lock;这句话错了,需要判断的不是key,是lock。应该修改为while(key == TRUE) swap key,lock;

第二个错误是lock = TRUE,退出区需要把lock 置为FALSE,让其他进程可以进入。应该修改为 lock = FALSE;

(2)

不可以实现互斥,因为swap指令是原子指令,需要保证原子性,newswap不具备原子性,当多个进程同时访问的时候可能会同时进入临界区

可能会违反忙则等待的条件


评分及理由

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

学生指出了两个错误:一是进入区的条件判断有误,应将if改为while;二是退出区的赋值有误,应将lock=TRUE改为lock=FALSE。这两个修改与标准答案完全一致,且理由正确。但学生第一处修改的理由中“需要判断的不是key,是lock”表述不准确(标准答案中判断的仍是key),不过修改后的语句正确,因此不扣分。得4分。

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

学生正确指出不能使用newSwap代替swap指令,理由是其不具备原子性,可能导致多个进程同时进入临界区,并提到可能违反“忙则等待”条件(即互斥条件)。理由与标准答案核心思想一致,但未详细解释并发执行newSwap时非原子操作的具体风险(如读写交叉导致互斥失败)。考虑到答案抓住了关键点(原子性),扣1分(因未充分展开)。得2分。

题目总分:4+2=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发