miércoles, 23 de noviembre de 2011

Practica 1-3

Actividad 1

Dibuja la jerarquía de procesos que resulta de la ejecución del siguiente código. Introduce las llamadas al sistema wait para que una vez generado el árbol de procesos los hijos sean esperados por sus respectivos padres. Ademas, haz que se informe de los tiempos de ejecución de las aplicaciones xload y kcalc que se generen así como del tiempo total de ejecución. Para calcular el tiempo transcurrido, puedes utilizar la función´ time() de la librería estándar time.h. La llamada time(NULL) devuelve los segundos transcurridos desde las 00:00:00 del 1/1/1970 hasta el instante de la llamada.

int main (int argc, char ∗argv[]) {
int i, j;
pid t pid, nuevo, nuevo1;
time t ini, fin;
for (i= 0; i< 2; i++){ pid= getpid(); for (j= 0; j< i+2; j++){ nuevo= fork(); if(nuevo== 0){ break; nuevo1= fork(); if(nuevo1== 0) execlp ("xload", "xload", NULL); } } if (pid!= getpid()) execlp ("kcalc", "kcalc", NULL); } return 0; }