Le memorie (RAM) in uso sui calcolatori odierni, pur essendo infinitamente superiori a quelle in uso solo qualche anno fa, non sono infinite. Allo stesso tempo i moderni calcolatori si trovano a gestire un numero di programmi nettamente superiore a quelli presenti in precedenza e con dimensioni sempre maggiori. Le memorie non sono tutte uguali, in primo luogo esse differiscono per dimensione, avere una memoria da un megabyte non è certo come avere una memoria da un gigabyte, o da un terabyte:

Ricordiamo:

  • Kilobyte (KB): 1024 byte, 2^{10} \text{ byte }
  • Megabyte (MB): 1024 kilobyte, 2^{20} \text{ byte }
  • Terabyte (TB): 1024 megabyte, 2^{30} \text{ byte }
  • Petabyte (PT): 1024 terabyte, 2^{40} \text{ byte }

I computer attuali hanno in genere dischi rigidi con una capacità compresa tra i 500 GB e i 2 TB. Mentre le memorie RAM vanno in genere dai 4 agli 8 GB (o almeno, queste sono le capacità standard nel momento in cui scrivo).

I dischi si differenziano anche per volatilità, ovvero la capacità di conservare (o no) le informazioni in assenza di una fonte elettrica. I dischi rigidi o hard disk sono memorie non volatili, vale a dire che mantengono le informazioni anche a computer spento, in assenza di alimentazione, le RAM (Random Access Memory) sono invece delle memorie volatili. Infine, i dischi differiscono anche per costo, che in genere è un valore connesso alla dimensione e alla velocità dell’unità. Parleremo più nel dettaglio dei dispositivi di output/input in un capitolo a loro dedicato.

Prestazioni

Per migliorare le prestazioni generali del sistema, i processi devono essere spostati dal disco alla memoria (RAM). L’accesso al disco è, infatti, molto costoso (dal punto di vista dei cicli di CPU), l’accesso alla RAM è invece più veloce. Anche con queste premesse l’accesso alla RAM rimane una operazione piuttosto costosa che deve essere ridotta al minimo. I tempi e la frequenza di accesso alla memoria hanno quindi un peso importante nelle prestazioni di un sistema.

Confronto sui tempi di accesso:

  • Tempi di accesso al buffer cache presente in RAM: 10 - 150 \text{ ns }
  • Tempi di accesso al disco: 9 - 15 \text{ ms }