文章

268

粉丝

0

获赞

0

访问

59.4k

头像
2026 年 408 冲刺预测 3 套卷(一) - 第46题回答
操作系统
发布于2025年12月15日 18:01
阅读数 189


评分及理由

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

学生定义了信号量,但定义不完整且存在错误。题目要求实现“写者优先”,即当有写者等待时,新读者必须等待。标准答案需要多个信号量来分别保护读者计数、写者计数、实现写者优先的入口控制以及资源互斥。学生只定义了两个信号量(metux 和 wait),其中 metux 意图是保证写者互斥,wait 意图是实现写者优先的等待队列。但信号量 wait 被读者和写者共用 P/V 操作,逻辑上会导致读者和写者无法同时进入(违背了“多个读者同时读”的要求),且无法正确实现“写者优先”(例如,无法处理多个写者等待时新读者的阻塞逻辑)。此外,缺少对读者计数的保护。因此,信号量定义不满足题目要求。扣1分,得1分。

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

读者进程代码框架存在严重逻辑错误。学生代码中,读者在进入时执行 P(wait),这会导致任何读者或写者持有 wait 时,其他所有读者和写者都被阻塞,无法实现多个读者并发读。同时,读者没有使用任何计数器,也没有对资源信号量进行管理,因此无法保证“当有写者等待时新读者被阻塞”的写者优先策略,也无法保证写者独占访问时读者被正确排除。该框架不能正确解决同步问题。扣2分,得0分。

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

写者进程代码框架同样存在逻辑错误。学生代码中,写者先 P(wait) 再 P(metux)。这种顺序结合读者也 P(wait) 会导致死锁或互斥过度(例如,一个写者持有 wait 后,所有读者和其他写者都无法进入)。虽然写者内部通过 metux 实现了写者间的互斥(但题目未要求写者间互斥,只要求写者与读者、其他写者互斥),但整体上 wait 信号量的使用破坏了读写者问题的正确同步。该框架不能正确实现写者优先的读写者问题。扣2分,得0分。

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

学生作答中未包含对信号量作用和工作原理的解释部分。因此,该部分得0分。

题目总分:1+0+0+0=1分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发