Algo que me ha intrigado es esto: ¿cómo regula exactamente una computadora y dice la hora? Por ejemplo: si tuviera que escribir un programa que hiciera esto:
Haz 2 + 2 y luego espera 5 segundos
¿Cómo sabe el procesador qué son "5 segundos"? ¿Cómo se mide el tiempo en los sistemas informáticos? ¿Hay un chip específico para ese único propósito? ¿Como funciona?
Gracias por cualquier respuesta; Estoy realmente interesado en informática, y me encantaría cualquier ayuda que me puedan dar = D.
Respuestas:
Si bien la respuesta de Joel es correcta, en realidad es un poco más complicada.
Lo primero que debe tenerse en cuenta (y me centraré solo en las PC aquí) es que hay varios relojes en una computadora y cada uno tiene su propio uso.
Lo más popular y fácil de entender es el reloj en tiempo real . Básicamente es un chip que tiene un reloj simple en su interior. Por lo general, tienen el mismo tipo de cristales de cuarzo que los relojes estándar y generalmente tienen una batería para controlar el tiempo cuando la computadora está apagada. El problema con ellos es que no son muy precisos, como se puede ver en los enlaces de Syntech. El cristal de 32.768 kHz es demasiado lento para cualquier cronometraje en sistemas modernos cuyos procesadores están en el rango de megahercios y gigahercios.
Aquí llegamos al siguiente punto: hay relojes internos utilizados para mediciones de tiempo precisas y cuenta regresiva.
Un reloj simple es un temporizador de intervalo programable . Lo que hace es esperar una cierta cantidad de tiempo y luego enviar una interrupción a la CPU. Cuando la CPU recibe la interrupción, detendrá lo que esté haciendo y atenderá la tarea que generó la interrupción. De esta manera, la CPU no tiene que verificar constantemente si se hace algo. En cambio, puede enfocarse en otros trabajos y hacer que el PIT le avise cuando el trabajo esté terminado. El PIT utiliza una fuente de reloj de 1.193182 MHz y, por lo tanto, es mucho más preciso que el RTC simple.
El siguiente sistema de medición interesante es el contador de sello de tiempo . La idea detrás de esto es que podemos obtener mediciones de tiempo mucho más precisas usando la fuente de reloj del procesador que usando varios temporizadores del sistema. PIT tiene un reloj de 1.193182 MHz, pero incluso los primeros procesadores x86 tenían un reloj mucho más alto. Entonces tendremos un temporizador que se actualiza después de cada cantidad establecida de ciclos de procesador. En ese momento, los procesadores tenían relojes muy estables y el uso de TSC era una buena manera de hacer mediciones precisas de tiempo. Sin embargo, el uso de TSC trae una serie de problemas. Los diferentes procesadores tienen diferentes velocidades de medición y miden el tiempo a diferentes velocidades. Más adelante, a medida que la tecnología avanzó, obtuvimos procesadores modernos que pueden cambiar su frecuencia. Ese es un problema importante, ya que el reloj de la CPU ya no es constante y no podemos usarlo para medir el tiempo.
Y es por eso que tenemos temporizadores de eventos de alta precisión ahora. HPET utiliza un reloj de 10 MHz y, por lo tanto, es más preciso que PIT. Por otro lado, su fuente de reloj no depende del reloj de la CPU y puede usarse para medir el tiempo incluso si el reloj de la CPU cambia. A diferencia de PIT, que funciona como cuenta regresiva, HPET mide el tiempo desde que se encendió la computadora y compara el tiempo actual cuando se necesita una acción.
Hay otras fuentes de tiempo disponibles para computadoras que creo que deben mencionarse. Algunas computadoras están conectadas a relojes atómicos y pueden usarlas para medir con precisión el tiempo.
Una opción menos costosa y mucho más común es usar una fuente de tiempo externa para calibrar las fuentes de tiempo internas de la computadora. Por ejemplo, los receptores GPS se pueden utilizar para proporcionar mediciones de tiempo de alta precisión, porque los satélites GPS tienen sus relojes atómicos internos.
Otra opción que es menos común que el receptor GPS es utilizar un receptor de radio especial que decodifica la información de tiempo de las estaciones de radio que mantienen el tiempo, como DCF77, por ejemplo. Dichas estaciones de tiempo tienen sus propias fuentes de tiempo de alta precisión y transmiten su salida por radio. Como las ondas de radio viajan a la velocidad de la luz, el retraso a menudo es insignificante.
fuente
IIRC, hay un pequeño cristal que vibra a una frecuencia específica cuando una corriente eléctrica pasa a través de él. Cada movimiento se cuenta y un número específico de ellos activa un ciclo de reloj.
fuente
HPET utiliza al menos un reloj de 10 Mhz. Puede ser más preciso que 10 Mhz pero nunca menos.
http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Comparison_to_predecessors
fuente