que diferenças e relações existem entre memória lógica e virtual?

1

Eu queria saber quais são as diferenças e relações entre memória lógica e virtual? Como seus propósitos diferem?

As relações e diferenças são as mesmas para endereços lógicos e virtuais?

    
por Tim 04.08.2011 / 15:00

2 respostas

4

Vamos repassar a diferença entre o endereçamento virtual e o lógico primeiro. Acredito que a distinção é que "endereço lógico" significa que o endereço que o programa vê é diferente do endereço físico dos dados armazenados na RAM.

Se você tiver memória virtual, pode não haver nenhum endereço físico, pois os dados armazenados podem ser trocados para o disco. No entanto, é possível ter um sistema sem memória virtual em que os endereços lógicos sejam diferentes dos endereços físicos, mas cada endereço lógico é mapeado para um endereço físico. Isso tornaria mais fácil executar vários programas sem que eles pisassem um no outro, mas não permitiriam que os programas usassem mais memória do que a memória física disponível no sistema.

Portanto, não existe uma "memória lógica" separada em um computador, embora eu possa dizer que um computador com endereços lógicos, mas nenhum sistema de memória virtual, tenha um sistema de memória lógica. Eu diria apenas que a memória lógica é a memória endereçada através de algum método indireto. Existe algum sistema de computador específico que você tenha em mente?

-

Considerando seus comentários:

Endereços lógicos para a mesma memória física podem ser iguais ou diferentes. Normalmente, dois processos não terão acesso à mesma memória, já que um pode corromper o outro. No entanto, se eles tiverem organizado alguma forma de memória compartilhada, eles geralmente mapearão essa memória compartilhada para endereços diferentes. Endereços virtuais são mais ou menos um tipo de endereço lógico, portanto, se você tiver um sistema operacional que ofereça suporte a VM e dois processos mapearem memória compartilhada, eles geralmente verão essa memória como sendo em endereços diferentes, o mesmo como se não houvesse virtual memória.

Quanto à sua compreensão da finalidade da lógica virtual versus lógica virtual, é para usar o HD para estender a memória que você tem disponível para programas. O endereçamento lógico pode ser usado para mais de separação de processos, mas isso seria um grande uso.

    
por 04.08.2011 / 15:44
3

Os endereços de memória "lógicos" são usados por um processo para referenciar seu código e dados. A tradução de um endereço lógico para um endereço físico depende do modelo de memória.

Quando a memória é mapeada diretamente (ou seja, modo real), o endereço da memória lógica é idêntico ao endereço da memória física.

Se a memória física for maior que o espaço de endereço do processador (como em um processador de 16 bits), o hardware do banco de memória é frequentemente empregado para expandir a quantidade utilizável de memória física. Os processadores Intel 8086/8088 usavam registros flexíveis de segmento em vez de um esquema bancário fixo. A conversão de um endereço lógico (16 bits) para um endereço físico (20 bits) usaria as tabelas do mapa do banco. Para x86, o endereço lógico provavelmente incluiria a especificação de um registro de segmento.

Se o intervalo de endereços físicos for maior do que a memória física típica (como processadores de 32 bits há uma década), o hardware de memória virtual é usado para fornecer o uso do intervalo de endereços completo. Os endereços lógicos são suportados pela memória física sob demanda. Para acomodar o espaço de endereço virtual / lógico completo e / ou fornecer a cada processo seu próprio espaço de endereço, é necessário um repositório de armazenamento para manter as cópias trocadas da memória virtual. A memória trocada pode ser organizada por segmentos ou páginas ou páginas segmentadas.

BTW em meus anos de invasão de kernel Unix, eu raramente ouvia ou usava a frase "endereço lógico (memória)". Se você não estivesse se referindo ao endereço da memória física, então era o endereço virtual. Ou seja, "endereço lógico" == "endereço virtual" (quando a memória virtual é ativada na MMU).

    
por 04.08.2011 / 21:44