1 / 19

Data Flow Architectures EEE465 2001 Includes material from a lecture by Rick Kazman and Mary Shaw References: [Sha96] pp

Context. We're taking a tour of architectural stylesEvent-basedLayeredData flowData centredFor each, we are examiningIntuitionImplementationsExamplesTodaycompare data flow to the more familiar control flowexamine intuitions for two types of data flow systems. Data Flow Systems. A data flow system is one in whichthe availability of data controls the computationthe structure of the design is dominated by orderly motion of data from process to processthe pattern of data flow is explic29

benjamin
Download Presentation

Data Flow Architectures EEE465 2001 Includes material from a lecture by Rick Kazman and Mary Shaw References: [Sha96] pp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Data Flow Architectures EEE465 2001 Includes material from a lecture by Rick Kazman and Mary Shaw References: [Sha96] pp. 1-5 and [SG96] §2.2. Major Greg Phillips Royal Military College of Canada Electrical and Computer Engineering greg.phillips@rmc.ca +01-613-541-6000 ext. 6190

    3. Data Flow Systems A data flow system is one in which the availability of data controls the computation the structure of the design is dominated by orderly motion of data from process to process the pattern of data flow is explicit In a pure data flow system, there is no other interaction between processes

    4. Kinds of Data Flow Systems In general, data can flow in arbitrary patterns. Often, we are primarily interested in nearly-linear data flow systems… or in very simple, highly constrained cyclic structures.

    5. Control Flow versus Data Flow Control Flow (usual case when examining code) dominant question is how locus of control moves through the program data may accompany control, but is not dominant reasoning is about order of computation Data Flow dominant question is how data moves through a collection of (atomic) computations as data moves, control is activated reasoning is about data availability, transformation, latency data flow is often analysed between processes, but the participants need not be processes

    6. Four Examples of Data Flow Batch sequential Pipe-and-filter (pipeline) Passive filter Process control

    7. Batch Sequential Pattern

    8. Batch Sequential Systems Processing steps are independent programs Each step runs to completion before next step starts Data transmitted as a whole between steps Typical applications: classical data processing program development

    9. Batch Sequential Architecture Processing steps are independent programs Each step runs to completion before next step starts

    10. Pipeline Architecture

    11. Pipes and Filters Filter incrementally transform some of the source data to sink data enrich data by computing and adding information refine data by concentrating or extracting information transform data by changing its representation stream-to-stream transformations use little local context in processing streams preserve no state between instantiations Pipe moves data from a filter output to a filter input (or file) one-way flow; may be flow control upstream but not data may implement a bounded or unbounded buffer pipes form data transmission graphs Overall operation run pipes and filters (non-deterministically) until no more computations are possible action mediated by data delivery

    12. Issue: Data Pull and Data Push Question: what is the force that makes data flow? Three choices, all with force emanating from filters: push: data source pushes data in downstream direction pull: data sink pulls data from upstream source push/pull: a filter is actively pulling from upstream, computing, and pushing downstream Combinations may be complex. If more than one filter attached to a pipe is pushing/pulling, is synchronization needed?

    13. Passive Filter Architecture

    14. Example: Compiler Architectures

    15. Traditional Compiler Architecture batch sequential all communication between phases through intermediate files intermediate files destroyed by successive phases

    16. Pipelined Compiler Architecture pipe and filter processes run in parallel and are “pipelined” so that final result is computed more quickly all communication between phases through pipes

    17. Modern Compiler Architecture enhanced pipe and filter relies on persistent data structures (symbol table, parse tree) which are used and modified through compilation

    18. Batch Sequential vs Pipe & Filter Both Decompose task into fixed sequence of computations Interact only though data passed from one to the other

    19. Next Class: Data Flow Implementation

More Related