文章
144
粉丝
0
获赞
0
访问
9.6k

评分及理由
(1)信号量定义部分得分及理由(满分2分)
学生定义了chopsticks数组(虽然误写为chostick)和bowl信号量,但存在以下问题:
- chopsticks数组大小写为7,但题目中n≥3未指定具体值,这里应使用n,但考虑到可能是示例性写法,不扣分
- bowl信号量初值设为1,但题目要求m≥1且要支持尽可能多的人同时就餐,标准答案使用min(n-1,m)作为碗的数量限制,这里bowl=1严重限制了并发度,不符合题目要求
- 定义了未使用的mutex信号量,属于多余信息但不影响核心逻辑
扣1分,得1分
(2)哲学家进程逻辑部分得分及理由(满分6分)
学生采用了奇偶编号不同顺序拿筷子的策略,这是解决哲学家就餐问题的有效方法之一:
- 正确使用了P、V操作来获取和释放资源
- 通过奇偶编号不同的拿取顺序破坏了循环等待条件,可以有效防止死锁
- 碗的获取和释放位置正确
- 但bowl信号量初值设为1严重限制了并发度,不符合"使尽可能多的哲学家同时就餐"的要求
扣2分,得4分
题目总分:1+4=5分
总体评价:学生的答案在防止死锁方面采用了有效的策略(奇偶编号不同顺序),核心逻辑正确,但未能正确处理碗的数量限制问题,限制了系统的并发性能。
登录后发布评论
暂无评论,来抢沙发