进程同步中的生产者_消费者模型分析

进程同步中的生产者_消费者模型分析

ID:37486498

大小:299.87 KB

页数:5页

时间:2019-05-24

进程同步中的生产者_消费者模型分析_第1页
进程同步中的生产者_消费者模型分析_第2页
进程同步中的生产者_消费者模型分析_第3页
进程同步中的生产者_消费者模型分析_第4页
进程同步中的生产者_消费者模型分析_第5页
资源描述:

《进程同步中的生产者_消费者模型分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第20卷第4期武汉科技学院学报Vol.20No.42007年4月JOURNALOFWUHANUNIVERSITYOFSCIENCEANDENGINEERINGApr.2007进程同步中的生产者—消费者模型分析帖军,陈幼均(中南民族大学计算机科学学院,湖北武汉430074)摘要:指出了复杂并发进程控制模型中同步和互斥关系处理的一般准则。以生产者—消费者模型为例,根据缓冲区数量、生产者进程数量和消费者进程数量的不同,将其细分为4种不同的子模型,并对其中的同步和互斥关系分别进行了分析,给出了各种情况下基于P、V原语和信号量机制的具

2、体解决方案。关键词:进程;同步;互斥;信号量中图分类号:TP311.1文献标识码:A文章编号:1009-5160(2007)-0030-05生产者-消费者模型是现代操作系统中典型的进程同步互斥问题,大量的多进(线)程通信系统应用都可以抽象为该模型的不同形式。因此,该模型的算法实现在这些领域具有极其重要的应用价值。目前各操作系统关于进程间同步互斥问题的主要解决手段一般都基于P、V原语和信号量机制,但P、V原语和信号量的应用分析[1]和具体控制异常复杂,使用不当很容易引发死锁等一系列问题。本文的主要目的在于给出一个典型的同步互斥

3、关系处理规则,并在该规则指导下,对生产者-消费者模型的各种不同情况进行具体分析,最终给出完善的基于P、V原语和信号量机制的解决方案。1生产者-消费者问题模型1.1问题描述一个仓库用于临时性存放物品。生产者不断地进行生产,每生产出一件产品,就将该产品放入仓库,仓库放满后则暂停生产。消费者不断地从仓库中取出一件物品,然后进行消费,仓库取空后则暂停消费。1.2模型分析可以将仓库抽象为计算机内存中的缓冲区,生产者和消费者抽象为不同的并发进程。在现代操作系统中,一般并发进程间的执行是相互独立,互不干涉的。但在本模型中,由于生产者和消费

4、者进程间出现了共同的操作对象(缓冲区),因此两者的执行必须采取一定的控制进行协调,否则很可能因为彼此不同步而出现数据丢失[2]或者重复读取等问题。1.3典型同步互斥关系处理规则对于复杂的并发进程控制模型,首先应当确定并发进程间的制约关系究竟是由于彼此协作而导致互相等待的直接制约,还是由于操作共同的排他性临界资源而导致的间接制约,进而将该组并发进程定性为同步关系(直[3]接制约)或者互斥关系(间接制约)。对于同步关系的处理规则如下:(1)确定导致同步关系的各个协作点,针对该协作点设置同步信号量,协作点以前发生的动作称为前驱,协

5、作点以后发生的动作称为后继。同步信号量的初值设为后继动作所需资源在系统初始时的实际值。(2)在每个后继动作之前加P操作,以试探是否可以得到所需资源并进一步执行;在每个前驱动作之后收稿日期:2006-10-14作者简介:帖军(1976-),男,讲师,硕士,研究方向:分布式系统.基金项目:中南民族大学科研基金资助项目(项目编号:YZY06008)第4期帖军,等:进程同步中的生产者—消费者模型分析31加V操作,以产生资源并唤醒阻塞在后继动作上的等待进程。对于互斥关系的处理规则如下:(1)确定导致互斥关系的各个临界资源,针对该临界资

6、源设置互斥信号量,由于临界资源是排他性使用资源,相当于在同一时刻只有一个资源可用,因此该互斥信号量初值设为1。(2)把对临界资源进行操作的代码段设置为临界区,为保证同一时刻只有一个进程进入临界区,在临界区之前加P操作,以试探是否可以锁定临界资源进入临界区;在临界区之后加V操作,以释放临界资源并唤醒等待进程。很显然,在生产者-消费者模型中,同步关系和互斥关系是并存的。在上述处理规则的指导下,本文通过对缓冲区数量、生产者进程数量、消费者进程数量的不同情况进行分析,将生产者-消费者模型划分为单缓冲区的单生产者-单消费者模型、单缓冲

7、区的多生产者-多消费者模型、多缓冲区的单生产者-单消费者模型、多缓冲区的多生产者-多消费者模型等4种情况分别进行讨论。2单缓冲区的单生产者-单消费者问题模型限制条件:整个系统仅有唯一的一个缓冲区,活动进程仅有一个生产者Producer和一个消费者Consumer。2.1进程关系分析同步关系:(1)只有在Producer向缓冲区放入物品后,Consumer才能够从缓冲区中取出物品消费;因此存在Consumer对于Producer的同步依赖。(2)只有在Consumer从缓冲区取出物品后,Producer才能够继续向缓冲区中放入

8、新生产的物品;因此存在Producer对于Consumer的同步依赖。互斥关系:(1)Producer放入物品的同时,Consumer是不能从缓冲区中取出物品的;反之亦然。因此存在Producer和Consumer之间的互斥关系。2.2信号量设置同步关系(1)表示Consumer需要一定的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。