CMU CS 15-675 Architectures for Software Systems Spring 1997


Data Flow Systems

Garlan & Shaw Questions on Readings for Lecture 5

Due: Monday, January 27, 1997


The papers:

[SG96]: Sections 2.2, 2.8, 4.2.1, 4.3.1

[KP84]: The UNIX Programming Environment selected pages

[B+96]: Pattern Oriented Software Architecture, pages 53-70 (only part of the B+96 selection)

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.

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. KP84 covers some of the nitty-gritty of unix pipes-filter implementation, and B+96 helps you take an abstract view of these and other systems.

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

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?

    Figure is in process of being converted

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

  3. How can the activity of a filter be triggered?

Email the Current Maintainer

Modified: 01/21/97