文章
205
粉丝
0
获赞
0
访问
48.1k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了bowl和chops两个信号量,bowl初值为m,chops数组初值全为1,这部分与标准答案基本一致。但标准答案中bowl的初值应为min(n-1, m),而学生直接使用m,这可能导致同时进餐的哲学家数量超过n-1,不符合"防止死锁"的要求。扣1分。
得分:1分
(2)筷子获取策略部分得分及理由(满分4分)
学生采用了奇偶哲学家不同的筷子获取顺序(奇数先右后左,偶数先左后右),这是一种有效的死锁避免策略。但是学生的j,k赋值逻辑存在严重问题:j = i%n; k = n-1 和 j = n-1; k = i%n 这样的赋值不能正确表示左右筷子的索引。正确的应该是左边筷子为i,右边筷子为(i+1)%n。这个逻辑错误会导致哲学家无法正确获取相邻的筷子。扣3分。
得分:1分
(3)整体逻辑结构部分得分及理由(满分2分)
学生的代码结构基本正确,包含了P、V操作的配对使用,有完整的获取资源、就餐、释放资源的流程。但由于前面两个部分存在严重问题,影响了整体逻辑的正确性。扣1分。
得分:1分
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发