Al giorno d'oggi i computer preposti ad un uso generale, vengono identificati come stored program computers. Come indica il nome, gli stored program computer caricano le istruzioni (la creazione di blocchi di programmi), all'interno di storage interni dove in seguito possono eseguire le suddette istruzioni.
Gli stored program computer, utilizzano per i propri dati lo stesso storage. Questo è in contrasto ai computer che utilizzano la loro configurazione hardware per controllare la loro funzionalità (come ad esempio i vecchi computer basati su di un pannello di connessione).
Il luogo dove i programmi sono stati conservati sui primi stored program computer, poteva presentare diversi nomi e utilizzare molteplici tecnologie. Dai puntini su di un tubo catodico, alla pressione di impulsi nelle colonne di mercurio. Fortunatamente, i computer moderni utilizzano delle tecnologie che rendono possibile una capacità di conservazione migliore con una misura minore.
Una cosa da ricordare durante questo capitolo, è che i computer cercano di accedere allo storage in determinati modi. Di fatti la maggior parte degli accessi per lo storage, tendono a mostrare uno (o entrambi) dei seguenti attribbuti:
L'accesso tende ad essere sequenziale
L'accesso tende ad essere localizzato
Accesso sequenziale significa che se la CPU accede l'indirizzo N, è probabile che l'indirizzo N+1 verrà accesso successivamente. Ciò ha un certo senso, in quanto molti programmi consistono in sezioni larghe di istruzioni, eseguite — in ordine — uno dopo l'altra.
Accesso localizzato significa che se si accede all'indirizzo X, è probabile che altri indirizzi presenti intorno a X saranno accessibili in futuro.
Questi attributi sono cruciali perchè permettono di avere uno storage più veloce e più piccolo invece di uno più grande e più lento. Questo rappresenta la base per implementare una memoria virtuale. Ma prima di discutere di memoria virtuale, dobbiamo esaminare le diverse tecnologie storage attualmente in uso.