Capitolo 5. La gestione della memoria

Sommario
Cosa è la memoria virtuale?
La creazione di uno spazio di swap
Come si usa lo spazio di swap
La condivisione dello spazio di swap con altri sistemi operativi
Allocare lo spazio di swap
La cache di buffer

"Minnet, jag har tappat mitt minne, är jag svensk eller finne, kommer inte ihåg..." (Bosse Österberg)

Questa sezione descrive le caratteristiche di gestione della memoria di Linux, cioè la memoria virtuale e la cache di buffer del disco. Ne vengono descritti lo scopo, il funzionamento e le azioni necessarie da parte dell'amministratore di sistema.

Cosa è la memoria virtuale?

Linux supporta la memoria virtuale, cioè l'utilizzo di un disco come estensione della RAM in modo da aumentare di conseguenza la dimensione della memoria utilizzabile. Il kernel scrive il contenuto di un blocco di memoria che al momento non viene utilizzato sull'hard disk, in modo che la memoria possa essere usata per altre cose, e quando il contenuto originale serve ancora viene spostato di nuovo nella RAM. Questo processo è completamente trasparente all'utente: i programmi che girano sotto Linux vedono soltanto una memoria disponibile più grande del vero e non sanno che parte di essa risiede sull'hard disk. Naturalmente leggere e scrivere sull'hard disk è più lento (dell'ordine di un migliaio di volte) che usare la memoria vera, quindi i programmi non sono ugualmente veloci. La parte dell'hard disk che viene usato come memoria virtuale si chiama spazio di swap.

Linux può usare come spazio di swap sia un file normale nel filesystem che una partizione separata; una partizione è più veloce, ma è più facile modificare la dimensione di un file (non c'è bisogno di ripartizionare l'intero hard disk e probabilmente installare tutto da zero). Quando sapete la quantità di spazio di swap di cui avete bisogno vi conviene usare una partizione, ma se non siete sicuri create un file, usate il sistema per un po' per farvi un'idea e poi fate una partizione quando siete sicuri sulla sua dimensione.

Dovreste anche sapere che Linux permette di usare diversi file e partizioni di swap nello stesso momento. Per questo, se vi serve per un periodo uno spazio di swap più grande del normale, potete impostare un file temporaneo, invece di tenerlo tutto sempre allocato.

Una nota sulla terminologia dei sistemi operativi: in informatica di solito si distingue tra lo swapping (scrivere tutto il processo nello spazio di swap) e il paging (scriverci solo delle parti di dimensione fissa, di solito alcuni kilobyte, alla volta). Il paging di solito è più efficiente, ed è quello che fa Linux, ma la terminologia tradizionale di Linux parla comunque di swapping[1].

Note

[1]

Facendo quindi innervosire in modo spaventoso moltissimi informatici.