文章

21

粉丝

0

获赞

2

访问

1.1k

头像
2014年计算机学科专业基础综合试题 - 第47题回答
操作系统
发布于2025年9月26日 00:58
阅读数 73


评分及理由

(1)信号量定义得分及理由(满分2分)

得分:2分

理由:学生定义了三个信号量mutex、full和empty,含义和初值正确(mutex=1用于互斥,full=0表示产品数量,empty=1000表示空位数)。信号量定义完整且初值正确,符合题目要求。

(2)生产者进程实现得分及理由(满分3分)

得分:3分

理由:生产者进程实现正确。先P(empty)判断空位,再P(mutex)互斥访问缓冲区,放入产品后更新rear指针,然后V(mutex)释放互斥锁,最后V(full)增加产品计数。同步和互斥操作顺序正确,与标准生产者模型一致。

(3)消费者进程实现得分及理由(满分3分)

得分:0分

理由:消费者进程存在严重逻辑错误:
1. 在进入循环前连续执行10次P(full),这会导致死锁。如果缓冲区产品不足10个,进程会阻塞在P(full)上,但其他消费者无法获取mutex来取产品。
2. 使用"取走head→(head+10)%1000里的10件产品"的批量操作方式,不符合题目要求的"连续取出10件产品"的进程同步要求(题目要求的是单个消费者连续取10次,期间其他消费者不能取)。
3. 批量操作后连续执行10次V(empty),但实际只进行了一次互斥访问,无法保证操作的原子性。
4. 缺少控制消费者连续取10件的互斥机制(如标准答案中的mutex1)。

题目总分:2+3+0=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发