文章
225
粉丝
6
获赞
4
访问
53.4k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
得分:1分
理由:学生正确定义了碗的信号量bowl = m和筷子信号量数组chopsticks[n] = {1,1,...,1},这部分得1分。但是碗的信号量应该限制为min(m, n-1)才能确保不会死锁,学生直接使用m,这个逻辑错误扣1分。
(2)哲学家进程实现部分得分及理由(满分6分)
得分:4分
理由:学生采用了奇偶编号不同的取筷子顺序来避免死锁,这是一个有效的解决方案,得4分。但是存在以下问题:
1. 缺少"思考"操作,应该是先思考再申请资源,扣1分
2. 在获取筷子后写的是"思考"而不是"进餐",这是明显的逻辑错误,扣1分
3. 筷子索引处理不完整,缺少对最后一个哲学家的边界处理(i+1)%n,但考虑到可能是识别问题,不额外扣分
题目总分:1+4=5分
登录后发布评论
暂无评论,来抢沙发