1. Indirizzi virtuali:
* Ogni processo riceve il proprio spazio privato di indirizzi virtuali. Questo spazio è indipendente dagli spazi degli indirizzi virtuali di altri processi, il che significa che un processo può accedere all'indirizzo 0x1000 senza conflitto con un altro processo utilizzando anche 0x1000.
* Questo spazio di indirizzi virtuali è grande, spesso di gran lunga superando la RAM fisica disponibile. Ciò consente ai processi di utilizzare più memoria di quanto esista fisicamente.
2. Indirizzi fisici:
* Questi sono gli indirizzi effettivi nella RAM fisica. La MMU traduce gli indirizzi virtuali in indirizzi fisici.
* Lo spazio degli indirizzi fisici è limitato dalla quantità di RAM installata nel sistema.
3. L'unità di gestione della memoria (MMU):
* La MMU è un componente hardware che esegue il compito cruciale di tradurre gli indirizzi virtuali in indirizzi fisici. Lo fa in tempo reale, ogni volta che un processo cerca di accedere alla memoria.
* Utilizza la tabella di pagina (descritta di seguito) per eseguire la traduzione.
4. Tabelle di pagina:
* Le tabelle di pagina sono strutture di dati che risiedono in memoria che contengono la mappatura tra pagine virtuali e cornici fisiche.
* Pagine: Lo spazio degli indirizzi virtuali è diviso in blocchi di dimensioni fisse chiamate pagine. Una dimensione tipica della pagina è 4kb.
* Frame: La memoria fisica è allo stesso modo divisa in blocchi di dimensioni fisse chiamate frame, di solito delle stesse dimensioni delle pagine.
* La tabella di pagina funge essenzialmente come tabella di ricerca. Dato un numero di pagina virtuale, restituisce il numero di frame fisico corrispondente.
5. Il processo di traduzione (semplificato):
1. Segmentazione degli indirizzi virtuali: L'indirizzo virtuale è diviso in due parti:il numero di pagina virtuale (VPN) e l'offset della pagina.
2. Pagina Tabella Lookup: La VPN viene utilizzata come indice nella tabella di pagina per trovare la voce corrispondente. Questa voce contiene il numero di frame fisico (PFN) e altre informazioni come le autorizzazioni di accesso (lettura, scrittura, esecuzione).
3. Costruzione dell'indirizzo fisico: Il PFN è combinato con l'offset della pagina dall'indirizzo virtuale originale per creare l'indirizzo fisico finale.
4. Accesso alla memoria: La MMU utilizza quindi questo indirizzo fisico per accedere alla posizione della memoria.
6. Tabelle di pagina multilivello:
Per evitare tabelle di pagina eccessivamente grandi (che sarebbe il caso se una singola tabella di pagina mappasse l'intero spazio degli indirizzi virtuali), molti sistemi utilizzano tabelle di pagina multilivello. Questo crea una struttura gerarchica, in cui ogni livello indica il successivo, portando infine al numero del frame fisico. Ciò consente di risparmiare la memoria e migliora l'efficienza.
7. Translation LookAside Buffer (TLB):
Il TLB è una cache all'interno della MMU che i negozi hanno recentemente utilizzato traduzioni di indirizzi virtuali-fisiche. Ciò accelera considerevolmente il processo di traduzione, poiché l'accesso al TLB è molto più veloce che accedere alla memoria principale per cercare la tabella delle pagine. Se una traduzione non si trova nel TLB (un Miss TLB), la MMU deve accedere alla tabella di pagina, che è significativamente più lenta.
8. Paging e scambio:
* Paging: Se un processo tenta di accedere a una pagina non attualmente in RAM (un errore della pagina), il sistema operativo carica la pagina necessaria dall'archiviazione secondaria (disco rigido) in RAM.
* Scambio: Il sistema operativo potrebbe scambiare spazi di indirizzo virtuale di interi processi dentro e fuori la RAM per gestire la memoria in modo efficiente.
In sintesi: L'indirizzo virtuale alla mappatura degli indirizzi fisici è un meccanismo complesso ma essenziale che consente una gestione efficiente della memoria, protezione e esecuzione concomitante di più processi. La MMU, le tabelle di pagina e il TLB lavorano insieme per eseguire questa traduzione perfettamente, rendendola trasparente alle applicazioni.
networking © www.354353.com