文章

194

粉丝

0

获赞

0

访问

27.5k

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


评分及理由

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

得分:0分

理由:题目问“实现C1的代码是否为临界区?为什么?”。标准答案指出,因为C1操作(写入数据分组)涉及对共享缓冲区B的修改,且要求B为空时才能执行,当多个进程(P1和P2)都需要执行C1时,必须互斥访问,因此实现C1的代码是临界区。学生回答“不是临界区”,并解释“B是临界区,而进程是通过互斥信号量实现互斥访问B的,而不是互斥访问C1的代码”。这个理解是错误的。临界区是指访问共享资源的代码段,这里C1正是访问共享缓冲区B的代码,因此它本身就是需要互斥执行的临界区。学生的答案与标准答案的核心观点相反,属于逻辑错误,故扣2分。

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

得分:3分

理由:题目要求定义尽可能少的信号量,并用wait/signal操作描述P1(执行C1)和P2(执行C2)的同步关系。学生定义了Empty(初值1,表示空位)和Data(初值0,表示数据)两个信号量,这是经典的生产者-消费者问题中针对单个缓冲区的同步解法,数量最少且正确。P1的流程是:Wait(Empty) -> C1 -> Signal(Data);P2的流程是:Wait(Data) -> C2 -> Signal(Empty)。该逻辑完全满足了“B为空时才能执行C1,B非空时才能执行C2”的要求,并隐含了互斥(因为单缓冲区,同步信号量已隐含互斥,但题目未要求显式互斥信号量,故不扣分)。学生答案思路正确,与标准答案(使用mutex和full)的具体信号量命名不同,但功能等价,且符合题目“尽可能少”的要求,故给满分3分。

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

得分:3分

理由:题目要求定义尽可能少的信号量,并用wait/signal操作描述P1和P2各执行一次C3(修改数据)的同步或互斥关系。学生定义了一个互斥信号量mutex(初值1),并在P1和P2中分别使用P(mutex)和V(mutex)包裹C3操作。这正确保证了“B非空时才能执行C3”(题目假设初始不为空)以及多个进程修改缓冲区时的互斥访问。学生答案中P2的操作为“C3修改”(第二次识别结果),与P1相同,这是正确的。虽然第一次识别结果中P2写成了“C4修改”,但根据上下文和第二次识别结果,可判断为识别错误,且核心逻辑正确。因此,该答案正确,得满分3分。

题目总分:0+3+3=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发