El tiempo es la medida del
rendimiento de un ordenador: el ordenador que ejecuta la misma cantidad de
trabajo en el menor tiempo es el más
rápido. El tiempo de ejecución de un programa se mide en segundos por programa.
Pero el tiempo puede ser definido de maneras diferentes, dependiendo de lo que
se cuente. La definición más sencilla de tiempo se llama tiempo de reloj (wall
clock time), tiempo de respuesta (response time) o tiempo transcurrido (elapsed
time). Estos términos se refieren al tiempo total que tarda una tarea en
completarse, e incluye los accesos a disco, los accesos a memoria, las
actividades de entrada/salida (E/S) y la carga adicional introducida por el
sistema operativo.
Sin
embargo, a menudo los computadores son de tiempo compartido, y un procesador
podría trabajar en diferentes programas simultáneamente. En estos casos, el
sistema podría intentar optimizar la productividad más que tratar de minimizar
el tiempo de ejecución de un programa
concreto. Por lo tanto, a menudo se querrá distinguir entre el tiempo
transcurrido y el tiempo que un procesador está trabajando para nosotros. El
tiempo de ejecución de CPU o simplemente tiempo de ejecución, el cual reconoce
esta distinción, es el tiempo que la CPU dedica a ejecutar una tarea concreta y
no incluye el tiempo perdido en las actividades de E/S o en la ejecución de
otros programas. (Sin embargo, hay que recordar que el tiempo de respuesta que
un usuario se encuentra será el tiempo transcurrido para el programa, no el
tiempo de CPU.) Además, el tiempo de CPU puede ser dividido en el tiempo de CPU
consumido por el programa, llamado tiempo de CPU del usuario, y el tiempo de
CPU consumido por el sistema operativo, llamado tiempo de CPU del sistema. La
diferenciación entre los tiempos de CPU del usuario y del sistema es difícil de
realizar de una manera precisa ya que a menudo es complicado el asignar la
responsabilidad de las actividades del sistema operativo a un programa de
usuario más que a otro.
El
desglose del tiempo de ejecución de una tarea queda reflejado con el comando de
Unix time el cual, por
ejemplo, podría retornar lo siguiente:
90.7u 12.9s
2:39 65%
El tiempo de CPU de usuario es 90,7
segundos, el de sistema es 12,9 segundos, el tiempo total transcurrido es 2
minutos y 39 segundos (159 segundos), y el porcentaje del tiempo transcurrido
que corresponde a tiempo de CPU es
(90,7 +
12,9) / 159 = 0,65
o el 65%. En este ejemplo, más de
una tercera parte del tiempo total de ejecución ha sido consumido esperando la
E/S, ejecutando otros programas o ambos.
A
veces, se ignora el tiempo de CPU del sistema cuando se examina el tiempo de
ejecución global debido a las imprecisiones cometidas por los sistemas
operativos al medir su tiempo de ejecución y a la inexactitud que supone el
incluir el tiempo de CPU del sistema cuando se compara el rendimiento de dos
máquinas con diferentes sistemas operativos. Por otra parte, el código de
sistema en algunas máquinas corresponde a código de usuario en otras, y, como
los programas no pueden funcionar sin un sistema operativo que se ejecute por
encima de la circuitería, se puede argumentar a favor de usar la suma de los
tiempos de CPU del usuario y del sistema como medida del tiempo de ejecución de
un programa.
Por
consistencia, mantendremos la distinción entre el rendimiento basado en el
tiempo transcurrido y el basado en el tiempo de ejecución de CPU. Usaremos el
término rendimiento del sistema para referirnos a tiempo transcurrido en un
sistema sin carga, y usaremos rendimiento de CPU para referirnos al tiempo de
CPU. Aquí nos centraremos en el rendimiento de la CPU, aunque nuestras
argumentaciones sobre la manera de exponer el rendimiento pueden ser aplicadas
para el tiempo total de ejecución o para el tiempo de CPU.
Aunque
como usuarios de ordenadores nos importa el tiempo, cuando se examinan los
detalles de una máquina es conveniente considerar el rendimiento según otras
medidas. En particular, es posible que los diseñadores de computadores quieran
considerar una máquina utilizando una medida relacionada con la rapidez con que
la circuitería realiza determinadas funciones básicas. Casi todos los
ordenadores tienen un reloj que funciona a una frecuencia concreta y determina
el momento en que tienen lugar los sucesos en la circuitería. Estos intervalos
discretos de tiempo se llaman los sucesos en la circuitería. Estos intervalos
discretos de tiempo se llaman ciclos de reloj ( o tics, tics de reloj, periodos
de reloj o ciclos). Los diseñadores llaman a la longitud del periodo de reloj
tanto el tiempo de un ciclo de reloj completo (p. ej. 2 nanosegundos. o 2 ns)
como la frecuencia de reloj (p. ej. 500 megahercios o 500 MHz), que es el
inverso del periodo de reloj.
No hay comentarios:
Publicar un comentario