文章

85

粉丝

0

获赞

2

访问

3.8k

头像
2017年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年9月9日 16:02
阅读数 14


评分及理由

(1)信号量定义(满分3分)

学生定义了三个信号量mutexY1、mutexY2和mutexZ,初始值均为1,与标准答案完全一致。信号量命名和含义正确,分别用于保护y和z的互斥访问,且区分了thread1与thread3、thread2与thread3对y的不同互斥需求。得3分。

(2)thread1代码(满分1分)

学生代码中,thread1在访问y前执行P(mutexY1),访问后执行V(mutexY1),正确实现了对y的互斥访问(仅与thread3互斥),且未引入不必要的互斥操作。与标准答案一致。得1分。

(3)thread2代码(满分1分)

学生代码中,thread2在访问y和z前分别执行P(mutexY2)和P(mutexZ),访问后执行V(mutexY2)和V(mutexZ),互斥顺序正确(先获取y锁再获取z锁),且释放顺序与标准答案一致(先释放y锁再释放z锁)。虽然标准答案释放顺序为先z后y,但信号量释放顺序不影响正确性,因此不扣分。得1分。

(4)thread3代码(满分3分)

学生代码中,thread3对z的访问正确使用P/V(mutexZ)保护;对y的访问正确使用P(mutexY1)和P(mutexY2)(获取两个y锁)以及V(mutexY1)和V(mutexY2)(释放两个y锁),与标准答案完全一致。得3分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发