文章

148

粉丝

0

获赞

0

访问

13.8k

头像
2017年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年11月25日 15:30
阅读数 43


评分及理由

(1)信号量定义得分及理由(满分3分)

学生定义了4个信号量:mutex1(对应x)、mutex2(对应y)、mutex3(对应z)、mutex4(对应w)。其中对x的互斥保护是不必要的,因为x只被thread1读取且没有写操作;对w的互斥保护也是不必要的,因为w是局部变量。缺少对y的细粒度互斥控制(标准答案需要两个信号量分别保护thread1-thread3和thread2-thread3对y的访问)。得1分(仅对z的互斥保护正确)。

(2)线程互斥实现得分及理由(满分5分)

thread1:只使用了P(mutex2)保护y的访问,但缺少对x的保护(虽然不必要但不算错),实现基本正确但不够完善。得2分。

thread2:使用了P(mutex2)和P(mutex3)保护y和z的访问,实现基本正确。得2分。

thread3:对z的保护正确,但对y的保护使用了错误的信号量(应该用两个不同的信号量),且信号量使用顺序混乱。得1分。

本部分总分:2+2+1=5分,但存在逻辑错误(对y的互斥控制不完善可能导致死锁或数据竞争),扣2分,实际得3分。

题目总分:1+3=4分

主要扣分原因:信号量设计不够合理,对y变量的互斥保护不完善,可能无法完全保证线程安全;部分代码结构混乱,存在识别错误。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发