文章

167

粉丝

0

获赞

0

访问

30.6k

头像
2025年某道冲刺模拟8套卷(一) - 第6题回答
操作系统
发布于2025年11月13日 11:58
阅读数 155


评分及理由

(1)得分及理由(满分8分)

学生答案存在多处逻辑错误:

  • 生产者进程A和B中的条件判断逻辑错误:题目要求-n≤A的件数-B的件数≤m,但学生代码中在满足条件时才生产,实际上应该在条件不满足时阻塞。标准答案使用信号量SAB和SBA来控制生产顺序,而学生使用if条件判断无法实现同步等待。
  • 信号量A和B的使用错误:学生将A和B设置为信号量,但初始值为0,在生产者中满足条件时执行V操作,在消费者中执行P操作,这种设计无法正确控制生产节奏,且会导致死锁或逻辑混乱。
  • 消费者进程C中存在严重错误:在else分支中再次P(mutex)会导致死锁;使用布尔变量C来切换取A/B的方式不符合题目要求(题目未指定取货顺序);信号量A/B的P操作位置不当。
  • 缺少仓库产品计数的同步信号量:标准答案中的S信号量用于保证仓库有产品时才能销售,学生答案缺少这个关键同步机制。
  • mutex使用范围不当:学生在生产者中把整个生产+入库操作放在临界区外,只保护了入库操作,但标准答案需要保护整个仓库访问。

由于存在多个严重逻辑错误,特别是同步机制设计完全错误,只能给予基础分。

得分:2分

题目总分:2分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发