Memoria virtuale: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 47:
È indispensabile che la quantità di memoria fisica presente sia almeno sufficiente a mantenere la [[principio di località (informatica)|località]] del sistema, ovvero quella parte di dati ed informazioni che sono utilizzate nell'immediato da ogni processo. Se così non fosse, infatti, il sistema dovrebbe continuamente provvedere ad eseguire delle operazioni di swapping per far si che ogni processo abbia i dati di cui necessita.
 
Ad esempio supponiamo che in un dato momento la memoria fisica sia satura e contenga esattamente la località del sistema e che in questa situazione viene avviato un nuovo programma. Il [[processo (informatica)|processo]] che viene creato ha bisogno di allocare della memoria. Dato però che la memoria principale è piena il sistema operativo provvede a liberare parte dello spazio memorizzando parte delle informazioni nella memoria secondaria. Successivamente, quando il controllo torna al processo i cui dati sono stati appena spostati, viene nuovamente richiesta un'operazione di swapping per ricaricare in memoria principale gli stessi. Dato che tutte le informazioni contenute nella memoria principale sono indispensabili questo fenomeno avviene molto spesso. Essendo la memoria secondaria molto più lenta (centinaia o migliaia di volte) rispetto alla memoria principale, questo causa un considerevole rallentamento del sistema, che è impegnato quasi esclusivamente in operazioni di I/O, e diventa presto inutilizzabile e poco, o per nulla, responsivoreattivo ai comandi dell'utente. Tale fenomeno è chiamato '''thrashing'''.
 
Tecnicamente,quando la memoria fisica libera (e quindi il numero di frame liberi) è insufficiente a contenere il working set corrente di un processo, quest’ultimo