2015-10-28 9 views
5

Ho studiato argomenti relativi alla gestione della memoria. Mi chiedo, se ho capito correttamente:L'indirizzo virtuale è specifico del processo?

  • puntatore indirizzo (virtuale) è specifico processo
  • diversi processi possono avere puntatori con gli stessi indirizzi, ma questi puntatori vengono tradotti in vari indirizzi fisici

Sono corretto su queste affermazioni? Se sì, si applicano per architetture x86, x86-64 e ARMv7, ARMv8?

+0

Hai letto wikipages rilevanti su [processi] (https://en.wikipedia.org/wiki/Process_%28computing%29), [memoria virtuale] (https://en.wikipedia.org/wiki/Virtual_memory), [spazio degli indirizzi virtuali] (https://en.wikipedia.org/wiki/Virtual_address_space) ....? –

+0

@BasileStarynkevitch Beh, non tutti loro. Tuttavia, non sono sicuro se l'ho capito correttamente. Guarda le risposte, entrambi stanno dicendo cose opposte. E se qualcuno risponde alla domanda, allora lui/lei afferma di conoscere l'argomento. Quindi ora abbiamo due verità :) – kravemir

risposta

8

bene tranne:

diversi processi possono avere puntatori con gli stessi indirizzi, ma questi puntatori vengono tradotti in vari indirizzi fisici

mentre questo è il caso generale, naturalmente diversi processi potrebbe condividere pagine mappate (guardare nella memoria condivisa) e quindi i puntatori potrebbero puntare agli stessi dati, dato che le pagine sono mappate alle stesse posizioni nello spazio di indirizzi virtuali.

Ma sì, questa è la comprensione corretta.

+3

Inoltre, la memoria condivisa potrebbe essere mappata a indirizzi diversi in processi diversi. –

+0

Certo, potrebbe, ma non è necessario. Mappature di librerie condivise, ad esempio ... Migliorerò il testo. –

+0

Grazie. Quindi, una piccola correzione dell'affermazione sarebbe: ** potrebbe ** essere tradotto :) – kravemir

Problemi correlati