2013-03-26 23 views
11

Sto imparando i diversi tipi di gestione della memoria. Non capisco il punto di avere un offset bit in un indirizzo virtuale. E anche perché le dimensioni della pagina vengono rese di 2?Numero pagina e offset

La mia confusione principale è: dammi un esempio di un offset utilizzato nelle istruzioni per accedere a un determinato addr virtuale?

La mia seconda confusione è: La solita affermazione è che se la dimensione dell'indirizzo logico è 2^me la dimensione della pagina è 2^n, allora i bit m-n di ordine elevato di un indirizzo logico designano il numero di pagina.

Grazie in anticipo

risposta

22

Credo che la vostra confusioni primarie e secondarie sono dovute alla confusione generale sul tema :)

Permettetemi di parlare intorno a questo un po 'e spero di poter essere di qualche aiuto. Innanzitutto, un'analogia: immagina di stare cercando una casa in una città. Immagina che a ciascuna casa sia stato assegnato un numero univoco: puoi immaginare che il numero di case diventerà presto molto grande e confuso. Ora immagina di introdurre il concetto di strade: i numeri delle case ora diventano un po 'più gestibili in quanto li hai raggruppati in bei pezzi. Quindi: Strade = numero di pagina, numero civico = indirizzo di offset.

L'intero punto di avere pagine di memoria virtuale è di consentire al computer di intagliare la memoria in blocchi gestibili e non sprecarne troppo. Intagliandola in blocchi (pagine) consente un controllo granulare di accesso, impaginazione e altre cose carine come quella. Più piccole sono le tue pagine, meno memoria hai intenzione di sprecare (se il processo A richiede 32k di memoria, e la tua dimensione della pagina è 64k, stai per finire con alcune che non sono usate), ma più alto è il sovraccarico sul sistema.

Per quanto riguarda il motivo per cui le dimensioni della pagina sono pari a 2, questo è lo spazio non sprecato all'interno dell'indirizzo. Dato che i computer sono basati su binari (al momento), tutto tende a ridursi a potenze pari a 2. Immagina se hai roba basata su fattori di 10. 10 in binario è 1010 - devi usare 4 bit per tenerlo , quindi perché non utilizzare l'intervallo completo di valori che è possibile ricavare da 4 bit: da 0000 a 1111 (da 0 a 15 = 16 valori).

Scusa se mi sono confusa un po '- spero che questo ti spinga nella giusta direzione!

+0

Grazie a GHC, ma quello che voglio vedere è come un'istruzione di assemblaggio esamina l'offset. così fa ld r2,0x0005. Dato che ogni indirizzo ha una dimensione di parola e ogni dimensione di pagina è di 4 byte. Quindi l'offset sarà 1 byte in questo caso? . – user1493786

+2

Inoltre ho fatto un po 'di ricerche prima della risposta, il motivo per cui usiamo la potenza di 2, è che quando dividiamo l'indirizzo virtuale per dimensione della pagina, otterrete il numero di pagina e l'offset, come solo i primi m bit del l'indirizzo sarà il numero della pagina e il successivo n bit sarà l'offset.Whileas se non fosse una potenza di due, dividendo l'indirizzo virtuale per individuare il numero di pagina e l'offset ha bisogno di% e/function, che aggiunge un overhead al sistema. – user1493786

+0

La conversione da virtuale a indirizzo fisico tramite tabelle di pagina ha un altro vantaggio: allevia lo spreco di memoria fisico a causa della frammentazione dello spazio degli indirizzi virtuale. –

-1

Ho la stessa confusione ma se ho capito bene allora è come il seguente: la potenza del caso 2 è leggermente oltre alla comprensione generale dell'argomento. È più simile a una convenzione, poiché abbiamo a che fare con valori binari e abbiamo bisogno di una divisione appropriata tra i bit per cui la potenza di 2 si adatta in modo appropriato.

esempio se un PGE ha 64k parole e ci sono 4 parole al telaio allora 2^x = 64 -> x = 6

che significa che ciascun frame può avere un indirizzo fisico che costituisce 6 valori binari cioè 0 o 1 in cui 4 rappresenterà il numero di fotogramma. E l'ultima che denota la posizione esatta della parola tra le 4.

Si noti che qui ogni frame non può avere 5 o qualsiasi altro valore o la cosiddetta convenzione fallisce.

+0

Ci si aspetta che si scriva correttamente in inglese su SO. –