6.033 - Computer System Engineering | One-pager #2: Due in Recitation 5, Thursday, February 23, 2006 |
As you saw in Hands-On #1,
piping is a feature of the UNIX operating system that allows a 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)
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. Pipe properties you might consider include the type of the data that can flow over a pipe, that two processes must have a shared parent to communicate, the directions in which data can flow, etc. In your writeup 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 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 Thursday, February 23, 2006. The second copy will be forwarded to the writing program for evaluation.