Gestione della memoria: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Risolvo disambigua MMU in Memory management unit tramite popup
m Risolvo disambigua Stack in Pila (informatica) tramite popup
Riga 31:
 
=== Spazio virtuale ===
La [[memoria virtuale]] di un [[processo (informatica)|processo]] in cui sono presenti tutte le informazioni necessarie alla sua esecuzione, come il codice, l'area riservata per lo [[Pila (informatica)|stack]] e i [[dati]], può essere strutturata come uno spazio degli indirizzi contiguo, ossia con indirizzi da 0 a N, in cui N rappresenta la dimensione della [[memoria virtuale]], oppure può essere suddivisa in segmenti indipendenti, ad esempio un segmento per il codice, un segmento per lo [[Pila (informatica)|stack]] ed infine uno per i [[dati]]. Nel secondo caso risulta più naturale il concetto di poter applicare diversi permessi di lettura/scrittura ad ogni segmento.
 
=== Allocazione della memoria fisica ===
Riga 66:
=== Partizioni multiple ===
Questo schema, adottabile nel caso di spazio virtuale segmentato, prevede che ad un singolo [[processo (informatica)|processo]] non sia allocata una singola partizione di dimensioni pari allo [[#Spazio virtuale|spazio virtuale]] del processo, ma un numero uguale al numero dei suoi segmenti.
Segmentando lo [[#Spazio virtuale|spazio virtuale]], ad esempio nei segmenti "[[Codice sorgente|codice]]", "[[Pila (informatica)|stack]]" e "[[dati]]", è possibile permettere la condivisione di segmenti tra processi.
Pensando, ad esempio, al segmento "codice", possono essere mandati in esecuzione più processi che eseguono lo stesso programma ma su dati diversi; questo schema permette di far condividere il segmento di "codice" in maniera tale da ottimizzare la gestione della memoria.
Avendo spezzettato la [[memoria virtuale]] del processo in segmenti più piccoli, ridurremmo, pur non eliminandolo, il fenomeno della frammentazione.