A principal diferença entre o endereço lógico e o endereço físico é que a CPU gera o endereço lógico durante a execução do programa, enquanto o endereço físico é um local na unidade de memória.
Em termos simples, a CPU gera o endereço lógico ou endereço virtual. Da perspectiva de um programa em execução, um item parece estar localizado no endereço fornecido pelo endereço lógico. A unidade de memória observa o endereço físico. Além disso, permite acessar uma determinada célula de memória na memória principal pelo barramento de dados.
O que é Endereço Lógico?
CPU gera endereço lógico. Da perspectiva de um programa em execução, um item parece estar localizado no endereço fornecido pelo endereço lógico. Os programas aplicativos em execução no computador não veem os endereços físicos. Eles sempre trabalham usando os endereços lógicos. O espaço de endereço lógico é o conjunto de endereços lógicos que um programa gera. É necessário mapear os endereços lógicos para endereços físicos antes de usá-los. A unidade de gerenciamento de memória (MMU) do dispositivo de hardware lida com esse processo de mapeamento.
Esquemas de Mapeamento MMU
MMU segue vários esquemas de mapeamento. No esquema de mapeamento mais simples, o valor no registrador de realocação é adicionado a cada endereço lógico produzido por programas aplicativos antes de enviá-los para a memória. Existem também alguns outros métodos complexos para gerar o mapeamento. A vinculação de endereço (ou seja, alocação de instruções e dados em endereços de memória) pode ocorrer em três momentos diferentes.
Figura 01: Endereço Lógico e Físico
Primeiro, isso pode acontecer em tempo de compilação se os locais de memória reais forem conhecidos antecipadamente, e isso geraria o código absoluto em tempo de compilação. Isso também pode acontecer no momento do carregamento se os locais de memória não forem conhecidos antecipadamente. Para isso, o código realocável precisa ser gerado em tempo de compilação. Além disso, a vinculação de endereço pode ocorrer em tempo de execução. Isso requer suporte de hardware para mapeamento de endereços. Em tempo de compilação e ligação de endereço de tempo de carregamento, os endereços lógicos e físicos são os mesmos. Mas este procedimento é diferente quando a vinculação de endereço ocorre em tempo de execução.
O que é Endereço Físico?
A unidade de memória observa o endereço físico ou o endereço real. Ele permite que o barramento de dados acesse uma determinada célula de memória na memória principal. A MMU mapeia o endereço lógico para o endereço físico. Por exemplo, usando o esquema de mapeamento mais simples, que adiciona o valor do registrador de realocação (suponha que o valor no registrador seja y) ao endereço lógico, um endereço lógico varia de 0 a x seria mapeado para um intervalo de endereço físico y a x+ y.
Além disso, isso também é chamado de espaço de endereço físico desse programa. Todos os endereços lógicos precisam ser mapeados em endereços físicos antes de serem usados.
Qual é a diferença entre endereço lógico e endereço físico?
Endereço Lógico vs Endereço Físico |
|
Endereço lógico é o endereço no qual um item parece residir da perspectiva de um programa aplicativo em execução. | Endereço físico é um endereço de memória que é representado na forma de um número binário no circuito do barramento de endereços para permitir que o barramento de dados acesse uma determinada célula de armazenamento da memória principal ou um registro de memória mapeado I /O dispositivo. |
Visibilidade | |
O usuário pode visualizar o endereço lógico de um programa. | O usuário não pode visualizar o endereço físico do programa. |
Método de Geração | |
CPU gera o endereço lógico. | MMU calcula o endereço físico. |
Acessibilidade | |
O usuário pode usar o endereço lógico para acessar o endereço físico. | O usuário não pode acessar diretamente o endereço físico. |
Resumo – Endereço Lógico vs Endereço Físico
A diferença entre o endereço lógico e o endereço físico é que a CPU gera o endereço lógico quando o programa é executado, enquanto o endereço físico é um local na unidade de memória. Todos os endereços lógicos precisam ser mapeados em endereços físicos antes que a MMU possa usá-los. Os endereços físicos e lógicos são iguais ao usar a vinculação de endereço de tempo de compilação e de carregamento, mas diferem ao usar a vinculação de endereço de tempo de execução.