首页 > 知识点讲解
       生产者-消费者问题
知识路径: > 计算机系统知识 > 计算机软件知识 > 操作系统知识 > 处理机管理(状态转换、同步与互斥、分时、抢占、死锁) > 处理机管理 > 进程的同步与互斥 > 
相关知识点:3个      
        下面通过例子来进一步阐明进程同步的概念。著名的生产者-消费者(Producer-Consumer)问题是计算机操作系统中并发进程内在关系的一种抽象,是典型的进程同步问题。在操作系统中,生产者进程可以是计算进程、发送进程;而消费者进程可以是打印进程、接收进程等。解决好了生产者-消费者问题就解决好了一类并发进程的同步问题。
        生产者-消费者问题表述如下:有n个生产者和m个消费者,连接在一个有k个单位缓冲区的有界缓冲上,故又叫有界缓冲问题。其中,pi和cj都是并发进程,只要缓冲区未满,生产者pi生产的产品就可投入缓冲区;类似地,只要缓冲区不空,消费者进程cj就可从缓冲区取走并消耗产品。
        可以把生产者-消费者问题的算法描述如下。
        
        其中,假如一般的高级语言都有sleep()和wakeup()这样的系统调用。从上面的程序可以看出,算法是正确的,两进程顺序执行结果也正确。但若并发执行,就会出现错误结果,出错的根源在于进程之间共享了变量counter,对counter的访问未加限制。
        生产者和消费者进程对counter的交替执行会使其结果不唯一。例如,counter当前值为8,如果生产者生产了一件产品,投入缓冲区,拟做conuter加1操作。同时消费者获取一个产品消费,拟做counter减1操作。假如两者交替执行加或减1操作,取决于它们的进行速度,counter的值可能是9,也可能是7,正确值应为8。
        操作系统实现进程同步的机制称为同步机制,它通常由同步原语组成。不同的同步机制采用不同的同步方法,迄今己设计出许多同步机制,最常用的同步机制:信号量及PV,管程。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有