文章

449

粉丝

0

获赞

0

访问

87.3k

头像
2014年计算机学科专业基础综合试题 - 第47题回答
操作系统
发布于2025年10月31日 19:37
阅读数 93


评分及理由

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

得分:2分

理由:学生定义了四个信号量,含义和初值都正确。empty=1000表示缓冲区初始空位数量,full=0表示初始产品数量,mutex1=1用于生产者与消费者互斥访问缓冲区,mutex2=1用于保证消费者连续取10件的互斥,这些定义与标准答案一致。

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

得分:2分

理由:生产者进程实现正确。先P(empty)检查缓冲区是否有空位,再P(mutex1)互斥访问缓冲区,放入产品后V(mutex1)释放互斥锁,最后V(full)增加产品计数,完全符合生产者-消费者模型。

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

得分:3分

理由:消费者进程基本正确,但存在一个逻辑错误。学生使用mutex2保证一个消费者能连续取10件产品,这符合题目要求。但在循环内部,对full和mutex1的P操作顺序可能导致死锁。标准做法应该是先P(full)检查产品数量,再P(mutex1)获取缓冲区互斥锁。学生的顺序是先P(mutex2)然后循环内先P(full)再P(mutex1),这个顺序在本题环境下不会导致死锁,因为mutex2保护的是整个10次取货过程,而不是单次操作。但严格来说,在单次操作中应该先检查资源再获取互斥锁,这里扣1分。

题目总分:2+2+3=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发