Tijdsverwerking in computers

Een computer krijgt regelmatig pulsen met een nauwkeurige interval. Deze komen van een kristal waarvan de oscillatiefrequentie door een chip wordt gedeeld tot 100 pulsen per seconde. Dit 100 Hz-signaal is aangesloten op een interruptlijn van de processor. Terwijl de processor een taak aan het uitvoeren is, legt hij 100 keer per seconde zijn taak even terzijde om zich aan de interrupt te wijden. In het geval het een timerinterrupt is, hoogt de processor het getal op dat een representatie van de tijd is. Dit zal een honderdste seconde zijn.

Na een hele seconde is de processor 100 keer geïnterrumpeerd en is de tijd 1 seconde opgehoogd.

Als de computer gebruikmaakt van de diensten van een ntp-server dan wordt de deelfactor bijgesteld als de klok in de computer voor- of achterloopt. Na verloop van enige tijd is, door de tijd iets te snel of te langzaam op te hogen, de computertijd gelijk aan die van de ntp-server en zal de deelfactor ook zonder externe correctie een zo nauwkeurig mogelijke klok opleveren.

Overigens wordt bij het afsluiten van de computer de interne tijd opgeslagen in een computerchip met klokje en een batterij die ook bij starten de tijd afgeeft aan de software.

Timer in IBM PC bewerken

Bij de originele IBM PC bedroeg de kristalfrequentie 1,19318 MHz, deze werd door middel van een 8253 (PC) of 8254 (AT) timer chip gedeeld door een instelbare waarde tussen 1 en 65536 (216). Voor de timer werd de maximale deelfactor gebruikt, waarbij de interruptfrequentie 18,2 Hz bedroeg, dit beperkte de hoeveelheid rekenkracht die nodig was voor het afhandelen van de interrupts. De deelfactor en de interruptroutine konden door programmeurs aangepast worden, iets wat bijvoorbeeld bij Terminate Stay Resident programma's toegepast kon worden om taken (schijnbaar) op de achtergrond uit te voeren.