Pregunta:
- ¿Cómo se calcula un tic de CPU y qué representa?
- ¿ Esto
tick
equivale a10 miliseconds
si un subproceso reportado no se solicita (5 * 10 ticks = 500 ticks
), ¿significa esto que la CPU estaba quizás demasiado ocupada para programar el subproceso antes mencionado para que funcione ?
Respuestas:
Una marca es una unidad arbitraria para medir el tiempo interno del sistema. Generalmente hay un contador interno del sistema operativo para los ticks; la hora y fecha actuales utilizadas por diversas funciones del sistema operativo se derivan de ese contador.
La cantidad de milisegundos que representa una marca depende del sistema operativo e incluso puede variar entre las instalaciones. Use los mecanismos del sistema operativo para convertir los ticks en segundos.
sysconf(_SC_CLK_TCK);
. Ver, por ejemplo, http://linux.die.net/man/2/timesEn cuanto a por qué un subproceso informa que no se llama: eso dependerá de si el subproceso se está bloqueando en algún lugar (espera, E / S, etc.). Si no está bloqueando, entonces sí, el planificador del sistema operativo decidirá cuándo se ejecutará, lo que puede llevar mucho tiempo si el sistema está ocupado.
Editar:
Tenga en cuenta que, quizás desafortunadamente, algunos autores también usan tick como sinónimo de ciclo de reloj del procesador (por ejemplo, este texto ). Creo que este uso está menos extendido, pero aún así, es mejor averiguar primero de qué están hablando las personas.
fuente
Editar: Tomado del hardware de la PC en pocas palabras :
"El reloj del procesador coordina todas las operaciones de CPU y memoria generando periódicamente una señal de referencia de tiempo llamada ciclo de reloj o tic . La frecuencia de reloj se especifica en gigahercios (GHz), que especifica miles de millones de tics por segundo. La velocidad de reloj determina qué tan rápido se ejecutan las instrucciones". Algunas instrucciones requieren un tic, otros múltiples, y algunos procesadores ejecutan múltiples instrucciones durante un tic ".
El tiempo entre ticks está determinado por la velocidad de su reloj, y toma uno a muchos ticks dependiendo del OP que se realice. Por ejemplo, una CPU de clase 286 necesita 20 ticks para multiplicar dos números.
Si necesita temporizadores de alto rendimiento, entonces no creo que pueda confiar en que los ticks sean constantes en todos los sistemas.
El programador de la CPU podría haber retrasado el hilo, especialmente si había otro hilo con una prioridad más alta. Entonces sí, la CPU podría haber estado demasiado ocupada.
fuente
ticks
en un sistema Unix generalmente ocurren 60 o 100 veces por segundo, y no están sujetos a la velocidad de proceso.tick
como sinónimo deprocessor cycle
. Aún así, en su mayoría lo veotick
usado como se explica en mi respuesta anterior. Pero supongo que la terminología varía, como siempre :-(. Edité mi respuesta.