Na začiatku program Zadanie vyhradí všetky zdroje (pre medziprocesovú komunikáciu). Jedná sa o rúry R1, R2, zdieľané pamäte SM1, SM2, semafory S1, S2. Následne spustí všetky procesy. Po spustení každého procesu program počká pomocou funkcie usleep() istý čas, aby sa vykonali potrebné veci pri vytváraní a spustení procesu. Výnimku tvoria procesy P1,P2 a Pr, kde zadanie čaká na ukončenie procesu Pr funkciou waitpid.