文章

95

粉丝

50

获赞

1

访问

12.3k

头像
2019年(408)计算机学科专业基础综合试题 - 第43题回答
操作系统
发布于2025年11月9日 16:22
阅读数 143


评分及理由

(1)信号量定义及初始化(满分2分)

学生答案中定义了lock=1、bowl=m、chopsticks=2三个信号量。其中bowl=m正确表示了碗的数量,但chopsticks=2错误(应为n根筷子),lock信号量的使用不符合题目要求(标准答案通过限制碗的数量来防止死锁)。扣1分。

(2)资源获取顺序(满分3分)

学生答案中的资源获取顺序为:先拿碗后取筷子,这个顺序与标准答案一致。但是使用lock信号量将整个取餐具过程原子化,虽然能防止死锁但会降低并发度,不符合"使尽可能多的哲学家同时就餐"的要求。扣1分。

(3)死锁处理(满分3分)

学生答案通过lock=1的信号量来破坏请求和保持条件,这种方法虽然能防止死锁,但是效率低下,同一时间只能有一位哲学家就餐,没有充分利用m个碗和n-1个并发就餐的可能性。标准答案通过限制碗的数量为min(m,n-1)来既防止死锁又提高并发度。扣2分。

题目总分:1+2+1=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发