文章

187

粉丝

0

获赞

3

访问

17.0k

头像
2024年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月18日 17:57
阅读数 36


评分及理由

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

学生回答“是的,C1要对缓冲区B进行操作。P1和P2必需互斥访问。” 这准确地指出了C1操作需要互斥执行,因为它是临界区。理由充分,与标准答案一致。得2分。

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

学生定义了三个信号量:empty=1, mutex=1, full=0。其P1和P2的代码逻辑正确:P1先P(empty)检查缓冲区是否为空,再P(mutex)进入临界区执行C1,然后V(mutex)释放互斥锁,最后V(full)表示缓冲区有数据。P2先P(full)等待缓冲区有数据,再P(mutex)进入临界区执行C2,然后V(mutex)释放互斥锁,最后V(empty)表示缓冲区为空。该逻辑完全满足题目要求(B为空才能执行C1,B非空才能执行C2),且互斥保护得当。虽然信号量名称与标准答案略有不同(标准答案用mutex和full,学生增加了empty),但思路正确且完整,不扣分。得3分。

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

学生定义了一个信号量mutex=1,并在P1和P2中正确使用P(mutex)和V(mutex)包裹C3操作。这确保了多个进程对缓冲区B的修改操作(C3)互斥进行,符合题目要求(B非空时才能执行C3,但互斥是主要需求)。学生的第二次识别结果中P1的代码“P(mutex)”正确(第一次识别中的“P(empty, mutex)”可能是识别错误,但以第二次为准)。逻辑正确。得3分。

题目总分:2+3+3=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发