文章

119

粉丝

0

获赞

1

访问

9.1k

头像
2019年计算机学科专业基础综合试题 - 第43题回答
操作系统
发布于2025年8月26日 18:13
阅读数 55


评分及理由

(1)信号量定义及初值(满分2分)

得分:1分

理由:学生定义了碗的信号量(pouls,应为bowls)初值为m,正确表示了碗的数量限制。但筷子信号量使用mutex数组,初值为1,正确表示了每根筷子的互斥访问。然而,标准答案中碗的信号量初值应为min(m, n-1),而学生直接使用m,未考虑n-1的限制,这是一个逻辑错误(可能导致死锁或资源分配不合理)。扣1分。

(2)P、V操作使用(满分4分)

得分:3分

理由:学生使用P(pouls)获取碗,然后通过奇偶判断分别申请左右筷子(避免死锁策略正确),最后释放筷子和碗。但释放操作在第一次识别中存在错误(if分支中V(pouls)位置不一致),第二次识别中修正为统一释放,正确。然而,碗的信号量未按min(m, n-1)初始化,但P/V操作顺序正确,扣1分(因初值错误影响整体逻辑)。

(3)防止死锁与最大化就餐(满分2分)

得分:1分

理由:学生通过奇偶性调整筷子申请顺序(奇数先右后左,偶数先左后右),有效防止死锁,符合要求。但碗的资源限制未考虑n-1(最多允许n-1人同时就餐),可能导致资源分配过多(如m>n-1时碗信号量初值应为n-1),这是一个逻辑错误。扣1分。

题目总分:1+3+1=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发