文章

305

粉丝

0

获赞

0

访问

64.7k

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


评分及理由

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

得分:2分

理由:学生正确指出C1的代码是临界区,并给出了正确的原因——C1是写入操作,需要互斥访问缓冲区B以保证结果正确。这与标准答案的核心逻辑完全一致。

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

得分:1分

理由:本题考察在特定初始条件和执行顺序下的同步互斥设计。标准答案需要两个信号量:一个互斥信号量(mutex)保证对缓冲区的互斥访问,一个同步信号量(full)表示缓冲区非空,以实现“B为空时才能执行C1,B非空时才能执行C2”的同步要求。
学生的两次识别结果均只定义了一个信号量。第一次识别中,信号量b初值为0,并在P1中先P(b)再执行C1,这会导致P1一开始就被阻塞,逻辑错误。第二次识别中,信号量b初值为0,P1先执行C1后V(b),P2先P(b)再执行C2。这个逻辑在“P1先执行一次C1,P2后执行一次C2”的特定场景下可以正确同步,但它缺少了对缓冲区B本身的互斥保护。C1和C2对共享缓冲区B的读写操作本身也需要互斥,以防止在读写过程中发生数据竞争。因此,学生的方案不完整,存在逻辑缺陷,扣2分。

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

得分:3分

理由:学生正确使用了互斥信号量mutex(初值为1)来保护C3操作(对缓冲区数据的修改),确保同一时刻只有一个进程能执行C3。两次识别结果均正确,与标准答案逻辑一致。

题目总分:2+1+3=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发