【OS笔记 17】经典同步问题——生产者—消费者问题(信号量解决方案)

一、问题描述




二、问题分析

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

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

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

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

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

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



三、生产者进程描述

【OS笔记 17】经典同步问题——生产者—消费者问题(信号量解决方案)_第1张图片



四、消费者进程描述

【OS笔记 17】经典同步问题——生产者—消费者问题(信号量解决方案)_第2张图片

你可能感兴趣的:(操作系统OS,操作系统,生产者消费者问题,信号量)