经典进程同步问题
Posted joezzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典进程同步问题相关的知识,希望对你有一定的参考价值。
1.生产者-消费者问题
问题描述
两个进程共享一个大小为n的缓冲区,其中一个是生产者,将信息放入缓冲区;另一个是消费者,从缓冲区中取出信息。由于缓冲区是霖姐资源,如何实现缓冲区的互斥访问和生产者、消费者之间的同步?
分析
使用三个信号量:
1.full,记录缓冲区满槽数目,用于同步,初值为0;
2.empty,记录缓冲区空槽数目,初值为n;
3.mutex,用于互斥,初值为1;
生产者和消费者在进去临界区都执行down操作,在刚刚退出时执行up操作,就能实现互斥。同时,对full和empty执行相应的操作,就能保证缓冲区满的时候,生产者停止运行,缓冲区空的时候,消费者停止运行。
代码
以上是关于经典进程同步问题的主要内容,如果未能解决你的问题,请参考以下文章