文章

117

粉丝

0

获赞

0

访问

39.1k

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


评分及理由

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

得分:2分(满分3分)

理由:学生定义了bowl、chopstick[n]和mutex三个信号量。其中bowl初值设为m(碗的数量),chopstick[n]每个元素初值为1,这些是正确的。但是多定义了一个不必要的mutex信号量(初值为1),这个互斥锁在标准答案中并不需要,因为筷子信号量已经提供了互斥。此外,标准答案中bowl的初值应该是min(n-1, m),而学生直接设为m,这个逻辑错误会导致可能超过n-1个哲学家同时进餐,不符合"防止死锁"的要求。扣除1分。

(2)哲学家进程逻辑

得分:3分(满分4分)

理由:学生正确使用了P、V操作来获取和释放资源,获取资源的顺序是先碗后左右筷子,释放顺序正确。但是多了一个不必要的P(mutex)和V(mutex)操作包围进餐过程,这个互斥锁在标准答案中不存在,虽然不会导致死锁,但是增加了不必要的复杂性。扣除1分。

(3)防止死锁机制

得分:0分(满分1分)

理由:学生没有实现防止死锁的关键机制。标准答案通过限制bowl的数量为min(n-1, m)来确保最多只有n-1个哲学家能同时进餐,从而避免死锁。而学生直接使用m作为bowl的初值,当m≥n时,所有哲学家可能同时拿起一只筷子,导致死锁。这个核心逻辑错误扣除1分。

题目总分:2+3+0=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发