One-pager #2

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.

Note: 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.

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

  • Pick one significant limitation of UNIX® pipes. Persuasively argue why it is a significant limitation in terms of a developer's ability to compose programs from components connected with pipes. Be concrete: you may find it effective to structure your argument using one or more examples.

Remember, use no more than one sheet of paper for your report. (Consult the 6.033 FAQ in the study materials section 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 5. The second copy will be forwarded to the writing program for evaluation.