Con il termine swap si intende 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 su un altro supporto fisico di memorizzazione. L'uso dello swap è una delle tecniche impiegate dal sistema operativo per la gestione della memoria virtuale.
Un processo può essere spostato temporaneamente dalla memoria centrale sul disco e il suo posto in memoria centrale può essere occupato da un altro processo in attesa di esecuzione: si parla di swapping dei processi e si usano i termini di swap out e swap in per specificare le due operazioni di rimozione dalla memoria e spostamento sull’hard disk e, rispettivamente, di ritorno dal disco in memoria. Tuttavia dover ricorre a troppi swapping non è molto efficiente a causa dell'overhead (sovraccarico di sistema) per i tempi di swapping che sono dell'ordine di diversi centesimi di secondo. Per ridurre la penalizzazione dovuta al sovraccarico di sistema si può pensare di usare quanti di tempo lunghi, in un contesto di multiprogrammazione time sharing, e nel contempo limitare il numero degli utenti a poche unità per non avere tempi di riposta troppo lunghi. Per usare la multiprogrammazione in modo efficiente occorre che in memoria ci siano più processi, in modo che il cambiamento di processo avvenga senza la necessità di trasferire il processo dal disco.
Frammentazione: la multiprogrammazione aumenta l’efficienza temporale. Massimizzare il num. di processi in memoria richiede ridurre spreco di memoria non allocabile.
permette di ridurre lo spreco di memoria e quindi aumentare la multiprogrammazione. Generalmente, richiede paginazione e/o segmentazione. Altamente efficiente, ma complesso da gestire