Differenza tra indirizzo logico e indirizzo fisico
Indirizzo logico vs indirizzo fisico
In termini più semplici, un indirizzo generato dalla CPU è conosciuto come un indirizzo logico. Gli indirizzi logici sono anche indicati come indirizzi virtuali. Dal punto di vista di un programma in esecuzione, sembra che un elemento si trovi nell'indirizzo fornito dall'indirizzo logico. L'indirizzo fisico (chiamato anche gli indirizzi reali) è l'indirizzo visualizzato dall'unità di memoria e consente di accedere a una particolare cella di memoria nella memoria principale dal bus dati.
Che cos'è un indirizzo logico?
Indirizzo logico è l'indirizzo generato dalla CPU. Dal punto di vista di un programma in esecuzione, sembra che un elemento si trovi nell'indirizzo fornito dall'indirizzo logico. I programmi di applicazione in esecuzione sul computer non visualizzano gli indirizzi fisici. Lavorano sempre utilizzando gli indirizzi logici. Lo spazio di indirizzi logico è l'insieme di indirizzi logici generati da un programma. Gli indirizzi logici devono essere mappati agli indirizzi fisici prima di essere utilizzati e questa mappatura viene gestita utilizzando un dispositivo hardware denominato l'unità di gestione della memoria (MMU). Esistono diversi schemi di mappatura utilizzati dal MMU. Nello schema di mappatura più semplice, il valore nel registro di rilocazione viene aggiunto a ciascun indirizzo logico prodotto dai programmi applicativi prima di inviarli nella memoria. Ci sono anche altri metodi complessi utilizzati per generare la mappatura. L'associazione di indirizzi (ad esempio istruzioni di allocazione e dati in indirizzi di memoria) può avvenire in tre tempi diversi. Il binding dell'indirizzo può accadere nel tempo di compilazione se le posizioni di memoria effettive sono note in anticipo e questo genererebbe il codice assoluto nel tempo di compilazione. Il binding dell'indirizzo può anche accadere al momento di caricamento se le posizioni di memoria non sono conosciute in anticipo. Per questo, è necessario generare codice re-locatable al momento della compilazione. Inoltre, il binding di indirizzi può accadere al momento dell'esecuzione. Ciò richiede il supporto hardware per la mappatura degli indirizzi. Nel tempo di compilazione e nel tempo di caricamento dell'indirizzo di indirizzi, gli indirizzi logici e fisici sono gli stessi. Ma nell'integrazione dell'indirizzo del tempo di esecuzione, sono differenti.
Che cos'è un indirizzo fisico?
L'indirizzo fisico o l'indirizzo reale è l'indirizzo visualizzato dall'unità di memoria e consente al bus dati di accedere a una particolare cella di memoria nella memoria principale. Gli indirizzi logici generati dalla CPU durante l'esecuzione di un programma vengono mappati all'indirizzo fisico utilizzando l'MMU. Ad esempio, usando lo schema di mappatura più semplice, che aggiunge il registro di rilocazione (supporre che il valore nel registro è y) valore all'indirizzo logico, un intervallo di indirizzi logico da 0 a x mappasse ad un intervallo di indirizzi fisici y a x + y. questo è anche chiamato lo spazio di indirizzo fisico di quel programma.Tutti gli indirizzi logici devono essere mappati negli indirizzi fisici prima che possano essere utilizzati.
Qual è la differenza tra un indirizzo logico e un indirizzo fisico?
L'indirizzo logico è l'indirizzo generato dalla CPU (dal punto di vista di un programma in esecuzione) mentre l'indirizzo fisico (o l'indirizzo reale) è l'indirizzo visualizzato dall'unità di memoria e consente al bus dati di accedere a un particolare cella di memoria nella memoria principale. Tutti gli indirizzi logici devono essere mappati in indirizzi fisici prima che possano essere utilizzati dal MMU. Gli indirizzi fisici e logici sono identici quando si utilizza l'ora di compilazione e il tempo di caricamento dell'indirizzo di indirizzo, ma si differenziano quando si utilizza l'assegnazione dell'indirizzo del tempo di esecuzione.