文章

148

粉丝

0

获赞

0

访问

17.1k

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


评分及理由

(1)信号量定义与初始化(满分2分)

得分:0分

理由:学生使用了mutex作为互斥信号量,但缺少对碗资源的信号量控制。标准答案中使用bowls信号量来限制同时进餐的哲学家数量,这是防止死锁的关键。学生使用整型变量bowl和chopstick数组,这些不是信号量,无法提供同步机制。此外,chopstick数组的初始化不完整,缺少对所有筷子的初始化。

(2)资源申请过程(满分3分)

得分:0分

理由:学生的资源申请逻辑存在严重问题。首先使用if条件判断资源可用性,这不是原子操作,存在竞态条件。然后使用mutex保护资源分配,但这种方法无法防止死锁,因为哲学家可能同时持有部分资源而等待其他资源。标准答案使用信号量的P操作来原子性地获取资源,这是正确的同步方法。

(3)资源释放过程(满分2分)

得分:1分

理由:学生正确使用了mutex保护资源释放过程,确保资源释放的原子性。但释放的资源类型和顺序与标准答案基本一致,只是实现方式不同。考虑到资源释放逻辑基本正确,给予部分分数。

(4)防止死锁机制(满分1分)

得分:0分

理由:学生的方案无法有效防止死锁。当所有哲学家同时执行到条件判断时,可能都认为资源可用而进入临界区,导致死锁。标准答案通过限制同时进餐的哲学家数量(min(n-1, m))来防止死锁,这是关键的安全措施。

题目总分:0+0+1+0=1分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发