CMU CS 15-675 Architectures for Software Systems Spring 1996

Data Flow Systems

Garlan & Shaw Questions on Readings for Lecture 7 Due: Mon Feb 5, 1996


The papers:

Shaw&Garlan (book) Sections 2.2, 2.8, 3.4

Hints:

This lecture begins the discussion of data flow systems. In such systems, the computation is dominated by the availability of data -- each component can execute only as fast as data is supplied to it. We will begin with two of the most common forms, batch sequential and pipeline systems (or pipe-and-filter architectures). We will then look at a form that's less often discusses, process-control systems.

The reading focuses on batch sequential systems. In addition to reading these sections, review your understanding of how to compose filters in unix; this is the handiest example of pipelines.

Sections 2.2 and 2.8 introduce two different kinds of data flow systems. Today's lecture is about data flow systems: that is, what do these systems have in common that distinguishes them from other broad classes of architectures.

In Section 3.4, first note how the paradigm of Section 2.8 is applied, then check to see how the parts of the design interact with each other.

Questions:

1) How do you reason about the functionality of pure pipe-and-filter systems? For example, if filter f with input stream x delivers the output stream f(x), what does the following compute? Why?

2) When should you seriously consider using the process control paradigm to organize a software system (or part of one)? Give specific examples. ÿ