2014-11-12 5 views
8

Durante la comprensione del concetto di Paging in Gestione della memoria, sono arrivato attraverso i termini "memoria logica" e "memoria fisica". Qualcuno può dirmi il diff. tra i due ??? Does memoria fisica = Hard Disk e memoria logica = RAMDiff. tra Memoria logica e Memoria fisica

+0

RAM è anche fisicamente disponibile. Intendi "indirizzo logico" e "indirizzo fisico"? Puoi citare alcune frasi complete in cui ti sei imbattuto nei termini? Hai effettuato ricerche e ricerche (http://stackoverflow.com/help/how-to-ask)? – xmojmr

+0

La "memoria logica e fisica" di Google fornisce: "Circa 20.500.000 risultati". Davvero non mi piace lo schiavismo di Google come comandato dai vampiri. Inferiore e chiuso. –

+2

@xmojmr Frase del libro: - "Il metodo di base per implementare il paging comporta la rottura ** della 'memoria fisica' ** in blocchi di dimensioni fisse chiamati Frammenti e interruzione ** 'memoria logica' ** in blocchi della stessa dimensione chiamati Pagine ". –

risposta

6

Ci sono tre concetti correlati qui:

  1. fisica - Un dispositivo reale

  2. logico - Una traduzione di un fisico dispositivo

  3. Virtuale - Una simulazione di un dispositivo fisico

Il termine "memoria logica" è usato raramente perché normalmente si usa il termine "memoria virtuale" per coprire sia le traduzioni virtuali che quelle logiche della memoria.

In una conversione di indirizzi, abbiamo un indice di pagina e un indice di byte in quella pagina.

L'indice della pagina per il percorso Nth nel processo potrebbe essere chiamato una memoria logica. Il sistema operativo reindirizza il numero di pagina ordinale in un indirizzo fisico arbitrario.

Il motivo per cui raramente si chiama memoria logica è che la pagina è stata simulata utilizzando il paging, diventando un indirizzo virtuale.

La transizione dell'indirizzo è una combinazione di logica e virtuale. L'uso normale è semplicemente chiamare l'intera cosa "memoria virtuale".

Possiamo immaginare che in futuro, man mano che la memoria crescerà, quel paging andrà via completamente. Invece di avere sistemi di memoria virtuale avremo sistemi di memoria logica.

0

La memoria fisica è RAM; In realtà appartiene alla memoria principale. L'indirizzo logico è l'indirizzo generato dalla CPU. Nel paging, l'indirizzo logico viene mappato in indirizzo fisico con l'aiuto delle tabelle di pagina. L'indirizzo logico contiene il numero di pagina e un indirizzo di offset.

0

Non un sacco di chiarezza qui finora, qui va: Memoria

fisica è ciò che gli indirizzi della CPU sul suo bus indirizzi. È il software di livello più basso che può arrivare. La memoria fisica è organizzata come una sequenza di byte da 8 bit, ognuno con un indirizzo fisico.

Ogni applicazione che deve gestire la memoria a livello fisico non è ovviamente fattibile. Quindi, fin dai primi giorni, le CPU hanno introdotto astrazioni di memoria note collettivamente come "Gestione della memoria". Queste sono tutte caratteristiche della CPU, opzionali, ma onnipresenti gestiti dal kernel:

lineare memoria è ciò che i programmi a livello utente affrontano nel loro codice. È visto come uno spazio di indirizzi contigui, ma dietro le quinte ogni indirizzo lineare viene mappato a un indirizzo fisico. Ciò consente ai programmi a livello utente di indirizzare la memoria in un modo comune e lascia la gestione della memoria fisica al kernel.

Tuttavia, non è così semplice. I programmi a livello utente indirizzano la memoria lineare utilizzando diversi modelli di memoria.Uno di cui potresti aver sentito parlare è il modello di memoria segmentato . Sotto questo modello, i programmi indirizzano la memoria usando gli indirizzi logici. Ogni indirizzo logico si riferisce a una voce di tabella che si associa a uno spazio di indirizzi lineare. In questo modo, l'o/s può suddividere un'applicazione in diverse parti della memoria come una funzione di sicurezza (dettagli fuori portata per questo)

In Intel 64-bit (IA-32e, sottomodulo 64-bit), la memoria segmentata non viene mai utilizzata e ogni programma può indirizzare tutti i 2^64 byte di spazio di indirizzamento lineare utilizzando un modello di memoria piatta . Come suggerisce il nome, tutta la memoria lineare è disponibile a un livello accessibile da byte. Questo è il più semplice.

Finalmente si arriva alla memoria virtuale . Questa è una caratteristica della CPU facilitata dalla MMU, totalmente invisibile ai programmi a livello utente e gestita dal kernel. Permette di mappare gli indirizzi fisici su indirizzi virtuali, organizzati come tabelle di pagine ("tabelle di pagina"). Quando la memoria virtuale ("paging") è abilitata, le tabelle possono essere caricate nella CPU, facendo in modo che gli indirizzi di memoria referenziati da un programma vengano tradotti in indirizzi fisici in modo trasparente. Le tabelle delle pagine vengono sostituite al volo dal kernel quando vengono eseguiti programmi diversi. Ciò consente l'ottimizzazione e la sicurezza nella gestione dei processi/della memoria (dettagli fuori portata qui)

Tenere presente che la memoria lineare e virtuale sono funzioni indipendenti che possono funzionare in combinazione. Se il paging è disabilitato, gli indirizzi lineari formano uno-a-uno con gli indirizzi fisici. Se abilitati, gli indirizzi lineari vengono mappati sulla memoria virtuale.

Note:

0

Un indirizzo generato dalla CPU è comunemente indicato come un indirizzo logico, mentre un indirizzo visto dall'unità di memoria, cioè quello caricato nel registro di indirizzo di memoria della memoria, viene comunemente definito come indirizzo fisico