Fixed bug in pipe semaphore initialization

The pipe's writer semaphore was initialized with a count of 1, which was preventing the wait call in pipwrite from blocking.
Fixed by initializing the count to 0.
Waited for process a and b to finish
Added TODOs regarding location of signal
Fixed logic when main waits on processes to finish

Semaphores were initialized to 1 instead of 0.
Implemented producer and consumer processes

Communication happens through a pipe.
Killed producer instead of waiting for completion