Embora a resposta de Joel esteja correta, na realidade, é um pouco mais complicada.
A primeira coisa que precisa ser levada em consideração (e vou focar apenas nos PCs aqui) é que existem vários relógios em um computador e cada um tem seu próprio uso.
O mais popular e mais fácil de entender é o relógio em tempo real . É basicamente um chip que possui um relógio simples dentro. Eles geralmente têm o mesmo tipo de cristais de quartzo que os relógios padrão e geralmente possuem uma bateria para manter o tempo quando o computador é desligado. O problema com eles é que eles não são muito precisos, como pode ser visto nos links da Syntech. O cristal de 32.768 kHz é muito lento para qualquer cronometragem em sistemas modernos cujos processadores estão na faixa de megahertz e gigahertz.
Aqui chegamos ao próximo ponto: existem relógios internos usados para medições precisas de tempo e contagem regressiva.
Um relógio simples é um temporizador de intervalo programável . O que ele faz é esperar um certo tempo e enviar uma interrupção para a CPU. Quando a CPU recebe a interrupção, ela interrompe o que está fazendo e tende à tarefa que gerou a interrupção. Dessa forma, a CPU não precisa verificar constantemente se algo é feito. Em vez disso, ele pode se concentrar em outros trabalhos e solicitar ao PIT quando o trabalho estiver concluído. O PIT usa a fonte de clock de 1.193182 MHz e, portanto, é muito mais preciso que o simples RTC.
O próximo sistema de medição interessante é o contador de data e hora . A idéia por trás disso é que podemos obter medições de tempo muito mais precisas usando a fonte de clock do processador do que usando vários temporizadores do sistema. O PIT possui um relógio de 1,193182 MHz, mas mesmo os processadores x86 mais antigos tinham um clock muito maior. Portanto, teremos um cronômetro que é atualizado após cada quantidade definida de ciclos do processador. Na época, os processadores tinham relógios muito estáveis e o uso do TSC era uma boa maneira de fazer medições precisas de tempo. O uso do TSC, no entanto, traz vários problemas. Processadores diferentes têm taxas de escala diferentes e medem o tempo em velocidades diferentes. Mais tarde, à medida que a tecnologia avançava, obtivemos processadores modernos que podem mudar sua frequência. Esse é um grande problema, pois o relógio da CPU não é mais constante e não podemos usá-lo para medir o tempo.
E é por isso que temos temporizadores de eventos de alta precisão agora. O HPET usa um relógio de 10 MHz e, portanto, é mais preciso que o PIT. Por outro lado, sua fonte de relógio não depende do relógio da CPU e pode ser usada para medir o tempo, mesmo que o relógio da CPU mude. Diferentemente do PIT, que funciona como contagem regressiva, o HPET mede o tempo desde que o computador foi ligado e compara o tempo atual quando uma ação é necessária.
Existem outras fontes de tempo disponíveis para computadores que, acredito, precisam ser mencionadas. Alguns computadores estão conectados a relógios atômicos e podem usá-los para medir com precisão o tempo.
Uma opção mais barata e muito mais comum é usar a fonte de tempo externa para calibrar as fontes de tempo internas do computador. Por exemplo, os receptores GPS podem ser usados para fornecer medições de tempo de alta precisão, porque os satélites GPS possuem seus relógios atômicos internos.
Outra opção menos comum que o receptor GPS é usar um receptor de rádio especial que decodifique informações de tempo para manter estações de rádio como o DCF77, por exemplo. Essas estações de tempo têm suas próprias fontes de tempo de alta precisão e transmitem sua saída pelo rádio. Como as ondas de rádio viajam na velocidade da luz, o atraso geralmente é insignificante.