CS 3733 Operating Systems, Fall 2004 Assignment 4 Comments

General Comments:

Answers to questions:
  1. Each pipecompiler waits for the child process to complete before reading again from the pipe, so each pipecompiler can execute at most one command at a time, independent of the number of CPU.
    This problem could be solved by having the pipecompiler fork an extra child to wait for its child to complete and write back to the reply pipe.
  2. The reply pipe is only emptied when mymake receives a blank line. Even under normal operation, if the makefile does not end with a blank line the reply pipe will not be emptied.