

Practica 2:
//Estudia el siguiente codigo y escribe la jerarquia de procesos resultante. Despues, compila y ejecuta el codigo para comprobarlo (deberas añadir llamadas al sistema getpid, getppid y wait para conseguirlo).
#include
#include
#include
#include
#include
#include
#define L1 2
#define L2 3
int main ()
{
int cont1, cont2;
pid_t pid;
system("clear");
for (cont2 = 0; cont2
{
for (cont1 = 0; cont1 < L1; cont1++)
{
pid = fork();
if (pid== 0)
break;
}
if (pid!= 0)
break;
}
printf("Soy el proceso %d y mi padre es % d\n",getpid(),getppid());
return 0;
}
En esta primera corrida y compilacion del programa, se obtienen un padre para muchos hijos en este caso 15.
Y en este caso si se le agrega la funcion sleep(); los procesos se anidan y se forman como en zigzag.