文章
212
粉丝
0
获赞
0
访问
76.2k

评分及理由
(1)信号量定义部分(满分2分)
得分:1分
理由:学生正确定义了筷子信号量数组chopsticks[n]并初始化为1,也正确定义了碗的信号量bowl(虽然写成了变量形式,但可以理解为信号量)。但额外定义了一个互斥信号量mutex,这个在标准答案中并不需要,且会影响并发性能。扣1分。
(2)资源获取逻辑部分(满分4分)
得分:2分
理由:学生正确使用了P(bowl)来获取碗资源,也正确使用了P操作获取左右筷子。但是将两个筷子的获取操作放在mutex保护下,这会不必要地降低并发度,且没有考虑死锁预防的关键点。标准答案通过限制碗的数量为min(m, n-1)来防止死锁,而学生答案中虽然限制了碗的数量,但筷子获取方式仍可能导致死锁。扣2分。
(3)资源释放和整体逻辑部分(满分2分)
得分:1分
理由:学生正确释放了筷子资源,也正确释放了碗资源,释放顺序合理。但是整体解决方案存在死锁风险,且并发效率较低。扣1分。
题目总分:1+2+1=4分
登录后发布评论
暂无评论,来抢沙发