Memoria principale e secondaria
I programmi possono fare riferimento solo a dati in memoria principale
Le basi di dati devono essere (sostanzialmente) in memoria secondaria per due motivi:
I dati in memoria secondaria possono essere utilizzati solo se prima trasferiti in memoria principale (questo spiega i termini “principale” e “secondaria)
I dispositivi di memoria secondaria sono organizzati in blocchi di lunghezza (di solito) fissa (ordine di grandezza: alcuni KB)
Le uniche operazioni sui dispositivi sono la lettura e la scrittura di una pagina, cioè dei dati di un blocco (cioè di una stringa di byte)
Per comodità consideriamo blocco e pagina sinonimi
Accesso a memoria secondaria:
- tempo di posizionamento della testina (seek time): in media 2-15 ms (a seconda del tipo di disco)
- tempo di latenza (rotational delay): 2-6 ms (conseguenxa della velocità di rotazione, 4-15 K giri al minuto)
- tempo di trasferimento di un blocco: frazioni di ms (conseguenza della velocità di trasferimento, 100-300 MB al secondo)
in media non meno di qualche ms
Commenti:
- il costo di un accesso a memoria secondaria è quattro o più ordini di grandezza maggiore di quello per operazioni in memoria centrale
- nelle applicazioni “I/O bound” (cioè con molti accessi a memoria secondaria e relativamente poche operazioni) il costo dipende esclusivamente dal numero di accessi a memoria secondaria
- accessi a blocchi “vicini” costano meno (contiguità)