码迷,mamicode.com
首页 > 系统相关 > 详细

经典进程同步问题

时间:2018-10-08 23:22:28      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:退出   问题   经典   操作   同步   mutex   停止   缓冲区   大小   

1.生产者-消费者问题

问题描述

  两个进程共享一个大小为n的缓冲区,其中一个是生产者,将信息放入缓冲区;另一个是消费者,从缓冲区中取出信息。由于缓冲区是霖姐资源,如何实现缓冲区的互斥访问和生产者、消费者之间的同步

分析

使用三个信号量:

1.full,记录缓冲区满槽数目,用于同步,初值为0;

2.empty,记录缓冲区空槽数目,初值为n;

3.mutex,用于互斥,初值为1;

生产者和消费者在进去临界区都执行down操作,在刚刚退出时执行up操作,就能实现互斥。同时,对full和empty执行相应的操作,就能保证缓冲区满的时候,生产者停止运行,缓冲区空的时候,消费者停止运行。

代码

经典进程同步问题

标签:退出   问题   经典   操作   同步   mutex   停止   缓冲区   大小   

原文地址:https://www.cnblogs.com/Joezzz/p/9757677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!