B. Tiempo de proceso
A la hora de contar el tiempo real que un proceso consume en la ejecución de un conjunto de sentencias, se considera únicamente el tiempo de ejecución de ese proceso y el de sus hijos (y los hijos de sus hijos, etc.), para los que el proceso padre está esperando su terminación mediante una llamada a wait.
Este tiempo se mide en pulsos de reloj: para obtener la medida del tiempo en segundos, se debe conocer el número de pulsos por segundo que se encuentran en CLK_TCK. A partir de este valor, los segundos que el proceso tarda en ejecutar un conjunto de líneas de código se puede calcular como:
tiempo = número de pulsos / CLK_TCK
El tiempo contabilizado se divide en cuatro tipos distintos:
- Tiempo empleado por la CPU en ejecutar el proceso en modo usuario.
- Tiempo empleado por la CPU en ejecutar el proceso en modo kernel.
- Tiempo empleado por la CPU en ejecutar los procesos hijo (y los hijos de los hijos, etc.) en modo usuario.
- Tiempo empleado por la CPU en ejecutar los procesos hijo (y los hijos de los hijos, etc.) en modo kernel.
Existe una estructura en C que refleja estos cuatro tipos de medidas:

donde clock_t se define para contar los pulsos de reloj.
La función que permite rellenar esta estructura es:

donde buffer es la estructura que rellena la función times. Si todo va bien, devuelve el número de pulsos transcurridos desde un instante anterior elegido de modo arbitrario; si, por el contrario, algo va mal, devuelve -1 y el código de error correspondiente en errno. El punto arbitrario al que hace referencia la función times puede ser el momento de arranque del sistema o cualquier otro; lo que importa es que ese momento no varía de una llamada a otra, por lo que se puede calcular el tiempo transcurrido como la diferencia entre los dos tiempos devueltos por dos llamadas sucesivas a times.
|
1. Procesos en C. Sincronización (primera parte) Curso de informática sobre sincronización de procesos en C y señales en linux que... [21/10/08] |
4.139 | ||||
|
2. Funciones en C (segunda parte) Sigue este curso de programación informática sobre Funciones en C en su parte... [17/10/08] |
9.175 | ||||
|
3. PHP y MySQL. Aplicaciones Web: HTML I (segunda parte) Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos las páginas... [02/12/08] |
2.605 | ||||