文章

120

粉丝

0

获赞

0

访问

60.5k

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


评分及理由

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

学生回答正确指出C1代码段是临界区,并给出了正确理由(两个进程不能同时写入缓冲区,需要互斥访问)。与标准答案完全一致。得2分。

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

学生定义了三个信号量:mutex、A、B,比标准答案多了一个信号量A。虽然A信号量可以用于同步,但题目要求"定义尽可能少的信号量",标准答案只用了两个信号量(mutex和full)。

逻辑上学生的方案是正确的,但信号量定义过多。在P1进程中,P(A)和P(B)的顺序有问题,应该先P(A)检查缓冲区可写,然后P(mutex)获取互斥访问,执行C1,然后V(mutex)释放互斥,最后V(B)表示缓冲区有数据。学生的代码中P(A)后直接P(B)是不正确的,因为初始时B=0,会导致P1阻塞。

考虑到学生思路基本正确,但信号量使用不够精简且有逻辑错误,扣1分。得2分。

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

学生正确使用了mutex信号量来实现互斥访问,与标准答案一致。虽然在第二次识别中写成了C1和C2(应为C3),但根据上下文判断这是识别错误。代码逻辑正确,实现了对C3操作的互斥访问。得3分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发