Diferença entre endereço logico e endereço físico

Anonim

Endereço Lógico vs Endereço Físico

Nos termos mais simples, um endereço gerado pela CPU é conhecido como um endereço lógico. Os endereços lógicos também são chamados de endereços virtuais. Na perspectiva de um programa que está sendo executado, um item parece estar localizado no endereço fornecido pelo endereço lógico. O endereço físico (também chamado de endereços reais) é o endereço visto pela unidade de memória e permite acessar uma célula de memória específica na memória principal pelo barramento de dados.

O que é um endereço lógico?

O endereço lógico é o endereço gerado pela CPU. Na perspectiva de um programa que está sendo executado, um item parece estar localizado no endereço fornecido pelo endereço lógico. Os programas de aplicativos que estão sendo executados no computador não vêem 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 gerados por um programa. Os endereços lógicos precisam ser mapeados para endereços físicos antes de serem usados ​​e esse mapeamento é gerenciado usando um dispositivo de hardware chamado Unidade de Gerenciamento de Memória (MMU). Existem vários esquemas de mapeamento usados ​​pela MMU. No esquema de mapeamento mais simples, o valor no registro de realocação é adicionado a cada endereço lógico produzido por programas de aplicativos antes de enviá-los para a memória. Existem também outros métodos complexos que são usados ​​para gerar o mapeamento. A ligação de endereço (i. E. Alocação de instruções e dados nos endereços de memória) pode acontecer em três momentos diferentes. A ligação do endereço pode acontecer no 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. A ligação do endereço também pode ocorrer em tempo de carga se as localizações da memória não forem conhecidas antecipadamente. Para isso, o código re-locatable precisa ser gerado no tempo de compilação. Além disso, a ligação do endereço pode acontecer no tempo de execução. Isso requer suporte de hardware para o mapeamento de endereço. Em tempo de compilação e ligação de endereço de tempo de carga, os endereços físicos e lógicos são os mesmos. Mas em tempo de execução vinculativo, eles são diferentes.

O que é um endereço físico?

O endereço físico ou o endereço real é o endereço visto pela unidade de memória e permite que o barramento de dados acesse uma célula de memória particular na memória principal. Os endereços lógicos gerados pela CPU ao executar um programa são mapeados para o endereço físico usando o MMU. Por exemplo, usando o esquema de mapeamento mais simples, que adiciona o registro de realocação (suponha que o valor no registro seja y) valor para o endereço lógico, um intervalo de endereço lógico de 0 a x seria mapeado para um intervalo de endereços físicos y para x + y. Isso também é chamado de espaço de endereço físico desse programa.Todos os endereços lógicos precisam ser mapeados para endereços físicos antes que eles possam ser usados.

Qual a diferença entre um endereço lógico e um endereço físico?

O endereço lógico é o endereço gerado pela CPU (da perspectiva de um programa que está sendo executado), enquanto o endereço físico (ou o endereço real) é o endereço visto pela unidade de memória e permite que o barramento de dados acesse um particular célula de memória na memória principal. Todos os endereços lógicos precisam ser mapeados para endereços físicos antes que eles possam ser usados ​​pela MMU. Os endereços físicos e lógicos são os mesmos ao usar o tempo de compilação e a ligação do endereço do tempo de carga, mas eles diferem ao usar a ligação do endereço do tempo de execução.