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.