Alocação de memória
Endereços físicos são os endereços reais das instruções e variáveis na memória real do computador, mas não são necessariamente iguais aos endereços lógicos.
2)Durante a edição : o programador escolhe a posição de cada uma das variáveis e do código do programa na memória. Esta abordagem normalmente só é usada na programação de sistemas embarcados simples, programados diretamente em linguagem de máquina.
Durante a compilação : o compilador escolhe as posições das variáveis na memória.
Para isso, todos os códigos-fonte que fazem parte do programa devem ser conhecidos no momento da compilação, para evitar conflitos de endereços entre variáveis.
Durante a ligação : o compilador gera símbolos que representam as variáveis mas não define seus endereços finais, gerando um arquivo que contém as instruções em linguagem de máquina e as definições das variáveis utilizadas.
Durante a carga : também é possível definir os endereços de variáveis e de funções durante a carga do código em memória para o lançamento de um novo processo.
Nesse caso, um carregador é responsável por carregar o código do processo na memória e definir os endereços de memória que devem ser utilizados. O carregador pode ser parte do núcleo do sistema operacional ou uma biblioteca ligada ao executável, ou ambos.
Durante a execução : os endereços emitidos pelo processador durante a execução do processo são analisados e convertidos nos endereços efetivos a serem acessados na memória real. Por exigir a análise e a conversão de cada endereço gerado pelo processador, este método só é viável com o uso de hardware dedicado para esse tratamento. 3)Cada processo é visto pelo sistema operacional