【OS笔记 17】经典同步问题——利用记录型信号量解决生产者—消费者问题(有限缓冲问题)

一、问题描述

【OS笔记 17】经典同步问题——利用记录型信号量解决生产者—消费者问题(有限缓冲问题)


二、问题分析

1. 解决对缓冲区资源的互斥访问问题

使用互斥信号量 mutex ,初始化为1,因为只有一个缓冲区。

2. 生产者投放产品的问题

使用信号量 empty ,初始化为n,因为一开始有n个空闲单元。当 empty = 0 时,生产者进程阻塞。

3. 消费者取出产品的问题

使用信号量 full ,初始化为0,因为一开始一个产品都没有。当 full = 0 时,消费者进程阻塞。



三、生产者进程描述

【OS笔记 17】经典同步问题——利用记录型信号量解决生产者—消费者问题(有限缓冲问题)



四、消费者进程描述

【OS笔记 17】经典同步问题——利用记录型信号量解决生产者—消费者问题(有限缓冲问题)