操作系统-生产者消费者问题(进程互斥问题)

问题描述:

生产者每次生产一个产品放入缓冲区

消费者每次从缓冲区取出一个产品使用

 

多个生产者生产的时候,要保证互斥的访问

 

 分析:

1.确定进程: 生产者+消费者

2.分析同步,互斥关系

互斥:缓冲区是临界资源,各个进程必须互斥访问

同步:缓冲区没有满时,生产者才能把产品放入缓冲区

同步:缓冲区不空的时候,消费者才能从中取出产品,否则必须等待

 

3.生产者每次P(消耗)一个空闲缓冲区,

并且V(生产)一个产品

 

消费者:

每次P(消耗)一个产品

V(生产)一个缓冲区 

 

实现

 

注意:

实现互斥的P操作一定要放在实现同步的P操作之后

V操作不会导致进程阻塞,两个V操作顺序可以交换

 

posted @ 2022-06-25 13:27  yangstar  阅读(576)  评论(0编辑  收藏  举报