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分
登录后发布评论
暂无评论,来抢沙发