欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

生产者-消费者问题

时间:2023-05-01

       在操作系统中,生产者,消费者问题是典型的pv操作问题,实质上也是进程互斥与同步的问题。生产者-消费者问题的简单描述就是,每一个生产者都要把自己生产的产品放进缓冲区内,每一个消费者从缓冲区内取走自己需要的商品。在这种情况下,只有当缓冲区内存在有生产者生产的商品时,消费者才可以取走商品,生产者与消费者的进程同步,而生产者与消费者之间存在信息交流与互通,只有进行信息交流与互通,才能得知是否能够放入商品或者取出商品。所以,生产者与消费者之间存在互斥,即生产者,消费者必须互斥访问缓冲区, 缓冲区内不允许同时存在两个以上进行中的进程。

       当生产者,消费者问题中的缓冲区为有界缓冲区时,两个进程共享一个固定大小的缓冲区,一边是生产者,负责生产商品并放入缓冲区内,另一边是消费者,负责从缓冲区内取走商品消费。

       存在的两个问题分别是缓冲区饱和与缓冲区为空。当缓冲区饱和时,此时的生产者已经无法向缓冲区再存放新的数据项,因为此时的缓冲区已经拒绝新的数据项的插入,解决的办法就是让生产者进入睡眠状态,停止向缓冲区供应新的数据项,等待消费者从缓冲区取走一个或多个商品时,再将生产者唤醒。同理,当缓冲区为空时,消费者已经无法从缓冲区内取走任何新的数据项,此时将消费者进入睡眠状态,停止向缓冲区内索取数据,等待生产者将新的数据项放入缓冲区时,再将消费者唤醒。

  

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。