Ir a Emagister Encuentra tu formación ideal
¡Mailxmail y emagister se unen para que tengas toda la formación a tu alcance!
12.170 cursos gratis
8.182.962 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Procesos en C. Sincronización (segunda parte)

Autor: Editorial McGraw-Hill
Curso:
10/10 (1 opinión) |2687 alumnos|Fecha publicación: 21/10/2008

Capítulo 10:

 Procesos en C. Tiempo de proceso

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:

Procesos en C. Tiempo de proceso

donde clock_t se define para contar los pulsos de reloj.

La función que permite rellenar esta estructura es:

Procesos en C. Tiempo de proceso

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.

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Procesos en C. Sincronización (segunda parte)


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
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  

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Quieres recibir más cursos de Programación? ¡Son gratis!