文章

183

粉丝

0

获赞

1

访问

60.4k

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


评分及理由

(1)信号量定义部分得分及理由(满分2分)

学生定义了碗的信号量bowl = m和筷子信号量数组chopstick[n] = {1,...1},与标准答案相比,碗的信号量初值直接使用m而非min(m, n-1)。这里存在逻辑错误:题目要求"防止出现死锁现象"且"使尽可能多的哲学家同时就餐",标准答案通过限制碗的数量为min(m, n-1)来确保最多只有n-1位哲学家能同时竞争筷子,从而避免死锁。学生直接使用m作为碗的信号量初值,当m≥n时无法防止死锁,因此扣1分。信号量定义部分得1分。

(2)筷子获取顺序部分得分及理由(满分4分)

学生采用奇偶编号区分筷子获取顺序:奇数编号哲学家先取右侧筷子再取左侧,偶数编号哲学家先取左侧筷子再取右侧。这种不对称分配方法能够有效避免死锁,思路正确。虽然与标准答案的对称方法不同,但同样解决了死锁问题,因此不扣分。筷子获取和释放操作完整正确,得4分。

(3)整体逻辑结构部分得分及理由(满分2分)

学生代码结构完整,包含思考-取碗-取筷子-就餐-放筷子-放碗的完整流程,循环结构正确。虽然碗的信号量处理有缺陷,但整体逻辑框架正确,得1分。

题目总分:1+4+1=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发