M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering One-pager #2: Due in Recitation 5, Tuesday, February 15, 2005

Piping is a feature of the UNIX operating system that allows any pair of processes to communicate by sending a stream of bytes from one to the other. In a UNIX shell, pipes allow chains of programs to be expressed, as in this example:

cat last_names.txt | sort | grep '^B'

This chain displays the list of all last names in the file "last_names.txt" that start with "B" in alphabetical order. In this example, the UNIX shell uses the system function pipe() to connect the output of each process in the chain to the input of the next. (Footnote)

Write a one-page essay that addresses the following questions:

Remember, use no more than one sheet of paper for your report. (Consult the 6.033 FAQ for formatting specifications.) We care more about quality and conciseness than the amount of content in your essay. You will not be able to address every issue in one page, so you will have to make your best argument and judiciously choose supporting facts for this one-pager.

Two copies of this assignment are due at the beginning of recitation on Tuesday, February 15, 2005. The second copy will be forwarded to the writing program for evaluation.


Footnote: Connections using the system function pipe() are not constrained to linear sequences of programs. In general, any process may output to multiple other processes, concurrently. Similarly, a process may accept input from multiple pipes.


Go to 6.033 Home Page