# Swap (informatica)

Con il termine swap si intende, in informatica, l'estensione della capacità della memoria volatile complessiva del computer, oltre il limite imposto dalla quantità di RAM installata, attraverso l'utilizzo di uno spazio di memoria su un altro supporto fisico di memorizzazione, ad esempio il disco fisso. L'uso dello swap è una delle tecniche impiegate dal sistema operativo per la gestione della memoria virtuale.

## Descrizione
### Funzione

Lo swap viene utilizzato per liberare memoria RAM: il sistema operativo ne salva sul disco una porzione della memoria allocata, che quindi può essere liberata e riallocata per i programmi che ne hanno bisogno. Questa porzione contiene i dati che hanno minore probabilità di essere richiesti nel futuro, e in genere sono quelli meno recentemente utilizzati. È chiaro che nel momento in cui si rende necessaria tale operazione, le prestazioni del sistema crollano bruscamente, essendo la scrittura su hard disk molto più lenta di quella in RAM (oltre cento volte inferiore).
Ad esempio, questa evenienza si verifica quando la memoria RAM libera non è più sufficiente per contenere tutte le informazioni che servono ai programmi. In realtà, in genere, il sistema operativo esegue lo swapping in maniera proattiva cioè ben prima dell'esaurimento della RAM, in modo da non restare mai a corto di memoria.
Alcune situazioni tipiche che possono provocare l'utilizzo intensivo del file di swap sono:
* Esecuzioni contemporanea di diverse applicazioni, in quanto ognuna necessita di un certo quantitativo di RAM libera per funzionare, e nei normali PC questa risorsa si esaurisce molto in fretta.
* Fotoritocco di immagini digitali ad alta risoluzione con la funzione annulla attivata, perché ogni immagine intermedia deve essere salvata in memoria per poter annullare l'operazione appena eseguita sull'immagine principale.
Inoltre, lo swap viene usato per rimuovere dalla RAM zone di memoria, ad esempio quelle usate in fase di inizializzazione di un programma, che non saranno più lette.

### File di swap e partizione di swap

A seconda del sistema operativo utilizzato è possibile avere file di swap, che risiedono nel normale file system del sistema, oppure partizioni di swap, cioè sezioni del disco integralmente dedicate allo swap ed inizializzate con un proprio specifico tipo di file system. L'uso della partizione è generalmente migliore dal punto vista delle prestazioni, perché evita che lo swap vada soggetto alla frammentazione tipica di alcuni file system. Per contro, occupa una delle (poche) partizioni disponibili sul disco fisso, ma il limite del numero delle partizioni è aggirabile mediante l'utilizzo di un Gestore logico dei volumi.

#### File di swap in Windows

Nei sistemi Windows lo swap è chiamato anche memoria virtuale, anche se questa corrispondenza è imprecisa, in quanto il nome memoria virtuale indica più correttamente lo spazio di memoria gestito dal sistema operativo, per come viene "visto" dai processi.
Windows non usa partizioni di swap, ma solo file di swap. Lo swap viene in genere gestito automaticamente dal sistema, anche se è consigliabile impostare una configurazione manuale (quantitativo minimo prefissato, massimo libero), per avere prestazioni migliori.
Nei sistemi Windows 2000 e Windows XP esistono due file di swap che sono nascosti:
* hiberfil.sys (usato solo in fase di "ibernazione" del sistema, il contenuto completo della memoria RAM viene copiato integralmente in questo file e alla ripresa del sistema ricaricato completamente)
* pagefile.sys (usato ogni qual volta la memoria RAM non sia sufficiente, viene anche chiamato "file di paging")
Presenti, generalmente nella radice del disco (esempio: C:\)

#### Partizione di swap in Linux

Nell'installazione di qualsiasi sistema UNIX-like, come Linux, l'installatore dell'OS raccomanda di creare almeno due partizioni, cioè una contenente la directory radice /, e una partizione di swap. Lo spazio utilizzato per la partizione di swap può variare da pochi megabyte fino a qualche gigabyte.
È utile ricordare che, se si intende utilizzare le funzionalità di sospensione e ibernazione del sistema operativo la partizione di swap deve avere dimensioni pari (meglio se leggermente superiori) della quantità di RAM in uso sulla macchina.
La creazione della partizione swap non è obbligatoria, ma molto consigliata.