Exercise 1: dpipe§

  • Read the Handout. (Large version of Figure 1).

  • Each student will reverse engineer their own unique version of dpipe. Please make sure you reverse engineer your version. Your answers and your implementation will differ from those of your fellow students.

  • Your version is loading

    (Note that this program is located in a different directory than ~cs3214/bin. You will need to invoke it by specifying the full path.)

Exercise 1 FAQ§

  • Why can I not see my dpipe process using 'ps ax' .... or using 'ps -e'?

    Either because you're running ps on a different machine than the dpipe process, or because dpipe isn't running anymore when you run ps.

    To exclude the former, run 'hostname' on your prompt. Exercise 0 should have equipped yourself with a bash prompt that includes the hostname.

    To exclude the latter, make sure that the shell in which you ran dpipe has not returned to the prompt. See also the next question.

  • I'm getting 'Permission Denied' when looking in /proc/<nnnn>.

    You are looking either on the wrong machine's /proc directory or you are looking under the wrong pid - perhaps the pid of a dpipe process run by another student on the same machine.

    The /proc file system provides information about all processes running on a machine. Some of this information is accessible to all users, some of it is accessible to only to the user that owns a process, and all of it is accessible to the superuser.

  • What are the arguments to my dpipe?

    The first argument is the name of the first program. The second argument is the name of the second program. All arguments after that are arguments to the second program. Do not make any assumptions about the number of arguments given. Doing so may cause you to fail the test scripts, which will test your dpipe with programs other than gnetcat6.