文章

63

粉丝

0

获赞

0

访问

2.5k

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


评分及理由

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

学生定义了三个信号量:y_13(线程1和3对y的互斥)、y_23(线程2和3对y的互斥)、z_23(线程2和3对z的互斥)。这与标准答案中的mutex_y1、mutex_y2、mutex_z对应,虽然命名不同但功能一致,且初始值均为1,正确实现了互斥信号的设置。因此得3分。

(2)thread1代码得分及理由(满分1分)

thread1中正确使用P(y_13)和V(y_13)保护了对y的访问,与标准答案一致。得1分。

(3)thread2代码得分及理由(满分2分)

thread2中正确使用P(y_23)和P(z_23)保护了对y和z的访问,且V操作顺序正确(先释放z后释放y),与标准答案一致。得2分。

(4)thread3代码得分及理由(满分2分)

thread3中对z的操作正确使用P(z_23)和V(z_23)保护。但对y的操作仅使用了P(y_23)和V(y_23),缺少对mutex_y1(即y_13)的互斥保护。在标准答案中,thread3修改y时需要同时获取mutex_y1和mutex_y2,因为thread1和thread2都可能访问y。学生答案中只保护了与thread2的互斥,未保护与thread1的互斥,存在逻辑错误。扣1分,得1分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发