文章
302
粉丝
0
获赞
15
访问
52.2k

评分及理由
(1)信号量定义及初始化(满分2分)
学生答案中定义了`max`信号量,初值为`min(n-1, m)`,与标准答案中`bowls`信号量的含义和初值一致,正确限制了同时就餐的哲学家数量以防止死锁。同时定义了筷子信号量数组`chop[n]`并初始化为1,正确表示了筷子的互斥访问。此处逻辑完全正确,得2分。
(2)哲学家进程的P、V操作顺序(满分6分)
学生答案中哲学家进程的逻辑为:先P(max),然后依次获取左右筷子,进餐后按相反顺序释放筷子,最后V(max)。这个顺序与标准答案一致,能够保证: - 通过限制同时拿碗的数量来防止死锁 - 正确实现了对筷子的互斥访问 - 避免了死锁的发生 但是学生答案中获取筷子的顺序为:先右筷子`(i+1)%n`,后左筷子`(i-1+n)%n`,这与标准答案中先左后右的顺序不同。不过由于所有哲学家都采用相同的获取顺序(都是先右后左),这同样可以避免死锁,是另一种正确的实现方式。因此此处逻辑正确,得6分。
题目总分:2+6=8分
登录后发布评论
暂无评论,来抢沙发