文章

288

粉丝

0

获赞

1

访问

28.6k

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


评分及理由

(1)信号量定义部分(满分2分)

得分:0分

理由:学生定义了多个信号量,但含义不清晰且存在错误。标准答案中需要碗的信号量(bowls)和筷子信号量数组(chopsticks[n]),而学生定义了people、w、k、mutex四个信号量,其中w和k的初值设置虽然与碗和筷子数量相关,但未体现筷子是每根独立管理的特性。特别是"people"信号量的定义完全多余且含义不明。信号量定义部分完全不符合题目要求。

(2)资源申请与释放逻辑(满分4分)

得分:0分

理由:学生的代码逻辑存在严重错误:①没有体现哲学家需要获取左右两根筷子的过程;②使用mutex信号量将整个资源申请过程原子化,这会严重降低并发度,与题目"使尽可能多的哲学家同时就餐"的要求相违背;③代码中P(m)和P(k)的操作对象与定义的信号量名称不一致(应该是P(w)和P(k)),但即使修正后,逻辑仍然错误,因为这样无法防止死锁。

3)死锁预防与并发优化(满分2分)

得分:0分

理由:学生的解决方案没有体现任何死锁预防机制。标准答案通过限制碗的数量为min(n-1, m)来确保最多只有n-1位哲学家能同时申请筷子,从而破坏死锁的必要条件。学生的方案既没有考虑碗的数量限制,也没有正确的筷子获取顺序,必然会导致死锁。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发