2019年(408)计算机学科专业基础综合试题 - 第43题回答
操作系统
发布于2025年11月11日 11:40
阅读数 1
由题意可得碗和筷子是互斥资源,哲学家们是同步进程。
因此有信号量mutex_bowl[m],muteax_kuaizi[n/2]
{
wait(mutex_bowl[m]);
wait(mutex_kuaizi[n/2]);
就餐;
signal(mutex_kuaizi[n/2]);
signal(mutex_bowl[m]);
}
评分及理由
(1)得分及理由(满分8分)
得分:2分
理由:
- 学生正确识别了碗和筷子是互斥资源,这是基本概念正确(+1分)
- 学生尝试使用信号量机制解决问题,方向正确(+1分)
- 但存在严重逻辑错误:
- 信号量定义错误:mutex_bowl[m]和mutex_kuaizi[n/2]的表示方式不正确,应该使用单个信号量表示碗资源,数组信号量表示筷子资源(-2分)
- 筷子获取方式错误:没有分别获取左右两边的筷子,而是用一个信号量表示所有筷子(-2分)
- 缺少防止死锁的关键机制:没有限制同时就餐人数,标准答案通过碗的数量限制来防止死锁(-2分)
- 信号量操作不完整:缺少哲学家交替思考和就餐的循环结构(-1分)
- 整体实现与标准答案差距很大,只能给基础分
题目总分:2分
登录后发布评论
暂无评论,来抢沙发