200 likes | 495 Views
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
E N D
1. Data Flow ArchitecturesEEE465 2001Includes material from a lecture by Rick Kazman and Mary ShawReferences: [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