1.8.5 Il caching

L’accesso ai dati contenuti nella memoria di massa è un’operazione relativamente lenta rispetto ai tempi di CPU (il ciclo di clock di sistema è dell’ordine dei nanosecondi (1 ns = 10-9 s), mentre l’accesso ai dischi è dell’ordine dei millisecondi (1 ms = 10-3 s)). Inoltre spesso vengono effettuati accessi successivi a zone contigue del disco.

Per ridurre il numero di accessi al disco, i sistemi operativi utilizzano generalmente un buffer41, o memoria cache42, dedicando parte della memoria RAM alla “bufferizzazione” delle operazioni di lettura e scrittura su disco. Tutte le operazioni di scrittura relative al disco vengono effettuate in una zona della memoria centrale (la memoria cache sopra citata), quindi più veloce rispetto al disco, e solo in un secondo momento vengono replicate sul disco (l’operazione di scrittura sul disco viene rinviata ad un momento successivo in modo da avere accumulato un blocco di informazioni da scrivere abbastanza consistente). Analogamente, le informazioni sono lette dal disco a blocchi composti da un numero consistente di byte (anche nel caso in cui si abbia bisogno di leggere un solo byte) e sono copiate nella memoria cache. In questo modo, una successiva richiesta di un’informazione contenuta nel blocco appena letto viene velocemente soddisfatta senza dover accedere nuovamente al disco. A causa di questo meccanismo di caching, uno spegnimento accidentale dell’elaboratore può comportare una perdita parziale delle informazioni, se le operazioni di scrittura accodate nella memoria cache non sono state ancora trasferite sul disco.


pict
Figura 1.28: Schematizzazione del meccanismo di caching.

Oltre al meccanismo di caching da parte del sistema operativo, si aggiunge spesso una memoria cache nell’hardware della stessa unità a dischi (v. fig. 1.28). Questa non può essere controllata dal sistema, il quale, in genere, si limita a tentare l’accesso in scrittura più volte (3 volte) e/o ad attendere qualche secondo prima di considerare avvenuta l’effettiva scrittura delle informazioni sul dispositivo stesso.