La memoria hardware di un sistema si divide in due categorie:
La memoria ad accesso casuale, composta da circuiti integrati, quindi molto rapida;
La memoria di massa, composta da supporti magnetici (dischi rigidi, bande magnetiche, ecc.), è molto più lenta. La memoria hardware serve da zona di stoccaggio temporaneo per i programmi e i dati che vuole utilizzare. In generale, più la quantità di memoria è importante, più applicazioni contemporaneamente potete lanciare. D'altra parte, più quest'ultima è rapida più il vostro sistema reagisce velocemente, si tratta quindi (per il sistema operativo) di organizzarlo al meglio per avere il massimo delle prestazioni.
La gestione della memoria è un compromesso difficile tra le performance (tempo di accesso) e la quantità (spazio disponibile). In effetti si desidera sempre avere il massimo di memoria disponibile, ma raramente si accetta che questo vada a compromettere le performance. La gestione della memoria deve poi riempire le seguenti funzioni:
Permettere la condivisione della memoria (per un sistema multi-task);
Permettere di attribuire i blocchi di memoria alle differenti operazioni;
Proteggere gli spazi di memoria utilizzati (impedire ad esempio ad un utente di modificare un'operazione eseguita da un altro utente);
Ottimizzare la quantità di memoria disponibile, soprattutto mediante dei meccanismi di estensione della memoria.
È possibile estendere la memoria in due modi:
Scomponendo un programma in una parte residente nella memoria viva e una parte caricata solamente in memoria quando l'accesso a questi dati è necessario.
Utilizzando un meccanismo di memoria virtuale, che consiste nell'usare il disco rigido come memoria principale e nello stoccare unicamente nella RAM le istruzioni e i dati utilizzati dal processore.
Il sistema operativo realizza questa operazione creando un file temporaneo (detto file SWAP, tradotto "file di scambio") nel quale sono stoccate le informazioni quando la quantità di memoria viva non è sufficiente. Questa operazione si traduce in una riduzione considerevole delle performance, dato che il tempo di accesso al disco rigido è estremamente più ridotto rispetto a quello della RAM. Quando si usa la memoria virtuale, si osserva che il LED rosso del disco rigido resta quasi sempre acceso e nel caso del sistema Microsoft Windows che un file detto win386.swp di dimensione conseguente, proporzionale ai bisogni della memoria viva, compare in questo caso.
La memoria centrale può essere scomposta in tre modi:
La segmentazione, i programmi sono scomposti in porzioni di lunghezza variabile chiamate «segmenti»;
L'impaginazione, consiste nel dividere la memoria in blocchi, e i programmi in pagine con una lunghezza fissa;
Una combinazione di segmentazione e di impaginazione, alcune parti della memoria sono segmentate, le altre impaginate.
Foto: © Pixabay.