makefile
:
demiurgo.c
e hijo.c
. La correcta
compilación de estos programas dará dos ejecutables:
demiurgo
e hijo
. El programa
demiurgo
admitirá un entero comprendido entre 1 y 7 como único
argumento desde la
shell y hará lo siguiente:
PADRE: "El hijo de PID=xxxxx no acabó correctamente."
hijo
, puede recibir los argumentos
que consideréis como necesarios, incluso ninguno. Hará lo
siguiente:
HIJO(PID=yyyyy): "El hijo de PID=xxxxx no acabó correctamente."
Soy zzzzz y muero sin descendencia.zzzzz es un identificador del hijo formado por una serie de números. En los casos anteriores se imprimía el PID. En este caso, el identificador refleja el origen genealógico del hijo. Por ejemplo, "1342" significa "Soy el segundo hijo del cuarto hijo del tercer hijo del padre original". Si en el momento de morir el árbol genealógico de los procesos vivos fuera el siguiente,
. .---. . . PADRE ____X 1 X____ . . / '---' \ . . / | \ . . / | \ . . .---. .---. .---. . . X 1 X X 2 X X 3 X . . '---' '---' '---' . . | / \ . . | / \ . . .---. .---. .---. . . X 1 X X 1 X X 2 X . . '---' '---' '---' .
sleep
para medir los tiempos.
demiurgo
. Mirad
que es posible pasarle un entero y que ese entero
está dentro de los límites. Una vez hecho esto,
compilad y ejecutad y, si es el caso, depurad esto.
Una vez comprobado haced que tenga tantos hijos como
el número que paséis a intervalos de 1 segundo.
De nuevo, compilad, ejecutad y depurad esto antes
de continuar.