版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据流体系结构风格第1页,共49页。4.1数据流体系结构风格
的基本特征第2页,共49页。数据流风格的直观理解Adataflowsystemisoneinwhich–theavailabilityofdatacontrolstheomputation(数据的可用性决定着处理<计算单元>是否执行)–thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系统结构:数据在各处理之间的有序移动)–inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互)第3页,共49页。数据流风格的基本构件(COMPONENT)Components:dataprocessingcomponents(基本构件:数据处理)–Interfacesareinputportsandoutputports(构件接口:输入端口和输出端口)–Inputportsreaddata;outputportswritedata(从输入端口读取数据,向输出端口写入数据)–Computationalmodel:readdatafrominputports,compute,writedatatooutputports(计算模型:从输入端口读数,经过计算/处理,然后写到输出端口)第4页,共49页。数据流风格的连接件(CONNECTOR)Connectors:dataflow(datastream)(连接件:数据流)–Uni-directional,usuallyasynchronous,buffered(单向、通常是异步、有缓冲)–Interfacesarereaderandwriterroles(接口角色:reader和writer)–Computationalmodel(计算模型:把数据从一个处理的输出端口传送到另一个处理的输入端口)第5页,共49页。数据流风格的拓扑结构(TOPOLOGY)第6页,共49页。数据流VS.控制流在vonNeumann的计算机体系结构中,有控制流与数据流之分;–控制流(Controlflow)–数据流(Dataflow)讨论:二者有什么区别和联系?能否分别举出几个例子?第7页,共49页。两种典型的数据流风格Pipe-and-Filter(管道-过滤器)BatchSequential(批处理)第8页,共49页。4.2管道与过滤器风格
PIPE-AND-FILTER第9页,共49页。从“自来水管道系统”看Pipe-And-Filter第10页,共49页。基本定义语境:数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。解决方案:–把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入;–每个处理步骤由一个过滤器构件(Filter)实现;–处理步骤之间的数据传输由管道(Pipe)负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。第11页,共49页。Pipe-And-Filter风格的基本构成Components:Filters—processdatastreams(构件:过滤器,处理数据流)–Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一个过滤器封装了一个处理步骤)–Datasourceanddatasinkareparticularfilters(数据源点和数据终止点可以看作是特殊的过滤器)Connectors:Apipeconnectsasourceandasinkfilter(连接件:管道,连接一个源和一个目的过滤器)–Pipesmovedatafromafilteroutputtoafilterinput(转发数据流)–Dataisastreamof“objects”(数据是特定类型的“对象”流)Topology:Connectorsdefinedataflowgraph(连接器定义了数据流图,形成拓扑结构)第12页,共49页。1过滤器(Filter)第13页,共49页。过滤器对数据流的五种变换类型第14页,共49页。过滤器读取与处理数据流的方式Incrementallytransformdatafromthesourcetothesink(递增的读取和消费数据流)–在输入被完全消费之前,输出便产生了。第15页,共49页。过滤器的一些基本特征Filtersareindependententities,i.e.,–nocontextinprocessingstreams(无上下文信息)–nostatepreservationbetweeninstantiations(不保留状态)–noknowledgeofupstream/downstreamfilters(对其他过滤器无任何了解)–collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用数据缓冲区临时保存数据流)•蓄水池第16页,共49页。2管道(Pipe)Movedatafromafilter’soutputtoafilter’sinput(ortoadeviceorfile)(作用:在过滤器之间传送数据)–Onewayflowfromonedatasourcetoonedatasink(单向流)–Apipemayimplementabuffer(可能具有缓冲区)–Pipesformdatatransmissiongraph(管道形成传输图)不同的管道中流动的数据流,具有不同的数据格式(Dataformat)。原因:数据在流过每一个过滤器时,被过滤器进行了丰富、精练、转换、融合、分解等操作,因而发生了变化。第17页,共49页。管道中流动的数据类型Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)–StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)–streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)–Streamcontentslimitedto"rawbytes"–Protocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences)第18页,共49页。管道中流动的数据类型Tradeoff–compatibilityandreusability"everythingisastream"–vs.typesafety"streamofPersons,streamofTexts"Popularstreamdataformats–rawbytestream–streamofASCIItextlineswithlineseparator–recordstream(recordattributesarestrings,separatedbytabulatororcomma)–nestedrecordstream(recordattributeisinturnasequence)–streamrepresentingatreetraversal(innernodes/leafnodesenumeratedinpreorder,postorder,inorder)–typedstreamwithaheadercontainingitstypeinformation(e.g.,columnheadings)–eventstreams(eventnameandeventarguments)第19页,共49页。管道-过滤器风格的一些变化形式第20页,共49页。数据流的分类:推式与拉式Question:whatistheforcethatmakedataflow?(是什么力量推动数据在管道中流动?)Threechoice,allwithforceemanatingfromfilters:–Push:datasourcepushesdataindownstreamdirection(推式:前面的过滤器把新产生的数据推入管道)–Pull:datasinkpullsdatafromupstreamdirection(拉式:随后的过滤器从管道中拉出所需数据)–Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:过滤器以循环的方式,从管道中拉出其输入数据,并将其处理产生的数据压入后续管道)第21页,共49页。过滤器的分类:主动与被动Activefilter:driversthedataflowonthepipes.(主动过滤器:驱动数据流动,pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被动过滤器:被管道中的输入或输出数据流所驱动)Attention:系统中至少有一个主动过滤器(可以来自外部环境,如用户输入)第22页,共49页。被动过滤器所采用的两种策略PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被动过滤器:该过滤器不会主动执行,而是在后续过滤器的“拉”动作的驱动下才执行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被动过滤器:该过滤器不会主动执行,而是在前续过滤器的“推”动作的驱动下才执行)第23页,共49页。采用推式策略的被动过滤器第24页,共49页。采用拉式策略的被动过滤器第25页,共49页。一个混合型的管道-过滤器系统第26页,共49页。一个混合型的管道-过滤器系统第27页,共49页。带有缓冲区的混合型管道-过滤器系统第28页,共49页。带有缓冲区的混合型管道-过滤器系统第29页,共49页。过滤器的状态停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。处理状态:表示过滤器正处理输入数据队列中的数据。等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态。第30页,共49页。Pipe-And-Filter风格的典型应用第31页,共49页。Pipe-And-Filter风格的典型应用Complier(scan,parse,generatecode,..)(编译器)Unixpipes(Unix管道)Imageprocessing(图像处理)Signalprocessing(信号处理)Voiceandvideostreaming(声音与图像处理)…第32页,共49页。管道-过滤器风格的例子第33页,共49页。管道-过滤器风格的例子:UnixShell第34页,共49页。管道-过滤器风格的例子:UnixShell第35页,共49页。管道-过滤器风格的例子:编译器(1)第36页,共49页。管道-过滤器风格的例子:编译器(2)第37页,共49页。管道-过滤器风格的优点使得系统中的构件具有良好的隐蔽性和高内聚、低耦合的特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支持软件复用:–只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单:–新的过滤器可以添加到现有系统中来,旧的可以被改进的过滤器替换掉;允许对一些如吞吐量、死锁等属性的分析;支持并行执行:–每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。第38页,共49页。管道-过滤器风格的缺点通常导致进程成为批处理的结构–这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;不适合处理交互的应用–当需要增量地显示改变时,这个问题尤为严重;因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。–绝大部分处理时间消耗在格式转换上第39页,共49页。4.3顺序批处理风格
BatchSequentialStyle第40页,共49页。批处理风格的直观结构将用户输入的纸带上的数据写入磁带将磁带作为计算设备的输入,进行计算,得到输出结果打印计算结果第41页,共49页。批处理风格的直观结构第42页,共49页。基本定义Processingstepsareindependentprograms(每个处理步骤是一个独立的程序)Eachsteprunstocompletionbeforenextstepstarts(每一步必须在前一步结束后才能开始)Datatransmittedasawholebetweensteps(数据必须是完整的,以整体的方式传递)Typicalapplications(典型应用):–classicaldataprocessing(传统的数据处理)–programcompilation/computeraidedsoftwareengineering(程序编译/CASE工具)第43页,共49页。基本构成Components(processingsteps)areindependentprograms(基本构件:独立的应用程序)Connecto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026苏州市六年级语文小升初分班考原创仿真卷-可打印含作文范文评分标准
- 2026ios资深面试题及答案
- 2026js高频率面试题及答案
- 2026memcached面试题及答案
- 高职建筑工程技术专业二年级《全塑胶跑道系统施工技术与质量管理》教案
- 2026年事业单位公开招聘综合应用能力(B类)试题及答案
- 初中物理九年级电与磁中考专题复习教案
- 初中二年级英语 Unit 5 What a Delicious Meal!单元整体教学设计
- 小学五年级数学《展开与折叠:构建空间观念的探究之旅》教学设计
- 小学五年级心理健康教育《言语有度成长无界:拒绝“背后蛐蛐”》教学设计
- 2025年计算机组成原理期末考试试题及答案
- 2025年安徽九华山旅游发展股份有限公司招聘66人笔试参考题库附答案
- 45186-2024限制快递过度包装要求
- 医院电梯施工组织方案
- 二次搬运施工方案及措施
- 重大风险管控知识培训课件
- 国开2025年《数据库应用技术》形考作业1-4答案
- 湘江战役教学课件
- 高中数学《人工智能数学基础》教案(2025-2026学年)
- GB/T 191-2025包装储运图形符号标志
- WeleUnitDiscoveringUsefulStructures句子基本结构课件-高中英语人教版
评论
0/150
提交评论