文章

25

粉丝

0

获赞

0

访问

2.4k

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


评分及理由

(1)信号量定义及初值设置

满分:2分

学生答案中定义了bowl、chopsticks和mutex三个信号量。其中bowl初值为m正确,chopsticks数组初值设为1正确。但mutex信号量的定义存在问题:

  • 标准答案使用bowls信号量限制进餐人数为min(m, n-1)
  • 学生使用mutex = min(bowl, n)不合理,bowl是信号量而非数值,且限制人数应为min(m, n-1)而非min(m, n)
  • 多定义了不必要的mutex信号量

扣分:1分

得分:1分

(2)哲学家进程的实现逻辑

满分:4分

学生答案在哲学家进程实现中存在多处逻辑错误:

  • 筷子索引错误:使用chopstick[n]会越界,应为chopstick[i]和chopstick[(i+1)%n]
  • 资源获取顺序:先获取mutex再获取bowl,这种顺序可能导致不必要的阻塞
  • 多使用了不必要的mutex信号量,增加了复杂度
  • 缺少思考环节的表示

扣分:3分

得分:1分

(3)死锁预防和并发优化

满分:2分

学生答案虽然试图通过mutex信号量来限制并发,但:

  • 限制人数为min(m, n)而非正确的min(m, n-1)
  • 使用了全局互斥锁的方式,虽然能防止死锁但严重降低了并发度
  • 没有充分利用碗和筷子的资源约束来优化并发

扣分:1.5分

得分:0.5分

题目总分:1+1+0.5=2.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发