1. Dividi l'indirizzo logico in parti:
L'indirizzo logico è diviso in due parti:
* Numero di pagina (PN): Ciò indica quale pagina dello spazio degli indirizzi logici fa riferimento al programma. Il numero di bit utilizzati per il numero di pagina dipende dalla dimensione della pagina e dalla dimensione dello spazio degli indirizzi logici.
* Offset della pagina (PO): Ciò indica l'offset all'interno della pagina referenziata. Il numero di bit utilizzati per l'offset della pagina è determinato dalla dimensione della pagina (ad esempio, una dimensione della pagina 4kb utilizza 12 bit per l'offset perché 2
Esempio: Diciamo che abbiamo un indirizzo logico a 32 bit e una dimensione della pagina di 4kb (2
* Offset della pagina (PO): 12 bit (2
* Numero di pagina (PN): 20 bit (32 - 12 =20 bit)
2. Consultare la tabella della pagina:
Il numero di pagina (PN) viene utilizzato come indice nella tabella di pagina. La tabella di pagina è una struttura di dati mantenuta dal sistema operativo che mappa le pagine logiche su frame fisici. Ogni voce nella tabella di pagina contiene:
* Numero frame (FN): Il numero del frame fisico nella memoria principale in cui risiede la pagina corrispondente.
* Bit valido/non valido: Indica se la pagina è attualmente nella memoria principale (valida) o meno (non valida - probabilmente durante la memoria secondaria). Potrebbero anche essere presenti altre bandiere (ad es. Bit sporco, bit di protezione).
3. Costruire l'indirizzo fisico:
Se la voce della tabella di pagina per PN fornita è valida, l'indirizzo fisico è costruito concatenando il numero del frame (FN) e l'offset della pagina (PO).
* Indirizzo fisico =numero di frame (FN) || Pagina Offset (PO)
Esempio (continua):
Diciamo che l'indirizzo logico è `0x0000ffff`.
* PO: `0xffff` (12 bit)
* PN: `0x0000` (20 bit)
La MMU utilizza PN (`0x0000`) per cercare la voce corrispondente nella tabella di pagina. Supponiamo che la voce della tabella di pagina per Pn `0x0000` contiene:
* fn: `0x1000` (Questo è il numero del frame nella memoria fisica)
* Bit valido: 1 (valido)
Pertanto, l'indirizzo fisico è:
* Indirizzo fisico =`0x1000ffff`
Paging multi-livello:
Nei sistemi con grandi spazi di indirizzi, viene utilizzato il paging multilivello. Ciò coinvolge più tabelle di pagina (ad esempio, una directory di pagina che punta alle tabelle di pagina, che quindi indicano i fotogrammi fisici). Il processo è simile ma richiede più ricerche di tabella per determinare il numero di frame finale.
Segmentazione:
La segmentazione è uno schema di gestione della memoria diverso che divide la memoria in segmenti di dimensioni variabili. Il paging e la segmentazione possono anche essere combinati. Il calcolo dell'indirizzo in questi schemi è più complesso.
In sintesi, il calcolo dell'indirizzo di paging prevede l'uso dell'indirizzo logico per trovare l'indirizzo fisico corrispondente attraverso una serie di ricerche della tabella. I dettagli esatti dipendono dall'architettura specifica e dall'implementazione della gestione della memoria del sistema operativo.
networking © www.354353.com