文章

246

粉丝

0

获赞

0

访问

20.0k

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


评分及理由

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

学生定义了semaphore V1=1, V2=1,但只定义了两个信号量。标准答案需要三个信号量:mutex_y1、mutex_y2和mutex_z,分别保护y变量在thread1和thread3之间的访问、y变量在thread2和thread3之间的访问,以及z变量的访问。学生缺少对z变量的互斥保护,且对y变量的保护不完整。扣2分。

得分:1分

(2)thread1实现得分及理由(满分1分)

学生使用P(V1)和V(V1)保护了add(x,y)操作,这相当于保护了对y的访问。虽然信号量命名不同,但思路正确。不扣分。

得分:1分

(3)thread2实现得分及理由(满分1分)

学生使用P(V2)和V(V2)保护了add(y,z)操作,但这只能保护对z的访问,无法保护对y的访问。thread2需要同时保护y和z的访问。扣1分。

得分:0分

(4)thread3实现得分及理由(满分3分)

学生对z=add(z,w)操作使用了P(V2)/V(V2)保护,这是正确的。但对y=add(y,w)操作使用了P(V1)和P(V2),这存在以下问题:1)缺少对y的完整保护;2)可能产生死锁,因为thread3在持有V2的情况下又申请V1,而其他线程可能以相反顺序申请。扣2分。

得分:1分

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发