Il tempo per il PC

Nei primi calcolatori l'orologio era formato semplicemente da un oscillatore e da un contatore; un'idea giusta non si cambia, ed ancora oggi il tempo per il PC non è molto diverso da come era una volta.

In un computer esistono due orologi: quello hardware e quello software. Il primo funziona grazie ad una batteria ed è attivo anche quando il computer viene spento; il secondo, invece, funziona soltanto a PC acceso prendendo all'avvio il tempo dall'orologio hardware. Sebbene all'avvio questi orologi siano sincronizzati, durante il funzionamento del computer possono lavorare a velocità molto differenti, perdendo o guadagnando tempo in relazione l'uno con l'altro.

Purtroppo, l'orologio software non è molto preciso, vediamone le ragioni: il tempo viene contato attraverso degli interrupt, un messaggio spedito regolarmente dall'orologio interno; perchè il tempo sia aggiornato, la CPU deve catturare l'interrupt, elaborarlo e aggiungere una certa quantità di tempo (determinata dalla frequeza dell'interrupt), chiamata tick, al contatore del tempo. Spesso però, la CPU ha compiti più importanti da svolgere che aspettare gli interrupt dell'orologio, e questo comporta alcuni ritardi nell'esecuzione dell'aggiornamento. Inoltre, ogni variazione alla frequenza degli interrupt causa variazioni dell'orologio, rendendolo uno scarso orologio. Altro fatto importante è che non è in grado di mostrare tutti i valori possibili del tempo, in quanto è limitato dall'intervallo tra due succssivi interrupt: possono essere mostrati solo multipli di questo intervallo.

Anche l'orologio hardware presenta degli inconvenienti: come detto, funziona a batteria (anche se spesso viene utilizzato un accumulatore, ma l'idea rimane la stessa), ma cosa succede se questa si sta scaricando? La frequenza di aggiornamento aumenterà piano piano, portando l'orologio a segnare un'ora sbagliata. In aggiunta, questo orologio viene aggiornato ogni secondo, cioè non è in grado di rappresentare le frazioni di secondo.

L'orologio interno è solitamente un chip collegato ad un'oscillatore, generalmente un cristallo di quarzo, che genera interrupt dopo un certo numero di oscillazioni; la qualità del cristallo è spesso scarsa e questo comporta che siano molto sensibili alle variazioni di temperatura che portano il quarzo a vibrare più o meno velocemente, facendo dunque sbagliare anche l'orologio interno.

2004-01-08