¿Qué es un tic de CPU?

37

Pregunta:

  • ¿Cómo se calcula un tic de CPU y qué representa?
  • ¿ Esto tickequivale a 10 milisecondssi 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 ?
Aaron
fuente
1
podría poner "CPU tick" en contexto, tal vez cortar y pegar el párrafo de la fuente de la frase. Me preocupa que pueda haber confusión entre una de varias respuestas posibles.
Mick

Respuestas:

31

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.

En 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.

sleske
fuente
Entonces, ¿la CPU requiere un número fijo de tics de reloj para ejecutar cada instrucción?
Aaron
1
@aaron: no, el tiempo de ejecución de la instrucción está vinculado a un cierto número de ciclos de procesador. dado un SO específico en una CPU específica que se ejecuta a una frecuencia específica, puede calcular cuántos ticks necesita ejecutar una instrucción específica, pero ese cálculo no es necesariamente válido para ninguna otra combinación de SO / CPU / frecuencia / instrucción.
quack quijote
1
@ Aaron: No, los ciclos de ticks y procesadores son dos conceptos diferentes. La duración del ciclo del procesador está determinada por el hardware (frecuencia de la CPU); los ticks son producidos por el sistema operativo y usan cualquier longitud que el sistema operativo (o sus diseñadores) considere apropiado.
sleske
No use datetime.ticks () como un indicador, es deliberadamente constante por diseño, para representar la fecha y hora de esa instancia de objeto. Es dependiente del tiempo, mientras que los ticks de hardware son independientes del tiempo. Es un mal nombre por parte del marco.
invertir
1
@sleske Hmmm veo la diferencia. 'ticks' solía ser sinónimo de ciclos de CPU, así como un término para "una cantidad constante de tiempo independiente de la velocidad del reloj de la CPU". Mismo término con dos significados. ¿Está bien?
invertir
3

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.

invertir
fuente
44
-1 Estás confundiendo ticks y ciclos de procesador. ticksen un sistema Unix generalmente ocurren 60 o 100 veces por segundo, y no están sujetos a la velocidad de proceso.
sleske
1
Estoy hablando de las garrapatas de hardware. una CPU de 1hz procesa 1 tic (ciclo) por segundo, 200Hz puede procesar 200 ciclos por segundo, 2GHz dos mil millones de ciclos / seg. Cuanto más rápido sea tu CPU, más ciclos / segundo obtendrás.
invierte el
2
Ah, ya veo, algunos autores usan tickcomo sinónimo de processor cycle. Aún así, en su mayoría lo veo tickusado como se explica en mi respuesta anterior. Pero supongo que la terminología varía, como siempre :-(. Edité mi respuesta.
sleske