Quais são os benefícios da memória virtual?

3

Então eu tenho lido em memória virtual e tudo parece bastante direto e prático. No entanto, estou engasgando com um conceito importante.

Se a memória virtual estiver armazenada na memória principal, então por que usá-la em primeiro lugar? Por que não apenas usar a memória principal?

Tenho certeza que estou sentindo falta de algo aqui, só não entendo o que é ainda.

    
por pnongrata 21.09.2011 / 16:30

3 respostas

6

A memória virtual pode ser armazenada na RAM, mas pode ser trocada para o disco quando outro processo precisa da RAM física. Esse é um dos recursos significativos. Uma vez no disco, outros processos podem usar a RAM do sistema para acelerar o processamento. Quando necessário, a memória trocada para o disco pode ser recarregada e outra coisa é movida em seu lugar.

Muitos dos computadores de hoje têm mais RAM do que precisam, portanto, a troca é minimizada (pode prejudicar o desempenho), mas é bom ter a opção de troca quando necessário.

    
por 21.09.2011 / 16:37
3

A memória virtual permite que você execute simultaneamente aplicativos de 10 x 1 GB em um computador de 2 GB.

Solicitação de paginação

Em vez de carregar o programa na memória e fornecer alguma memória para dados, a VM aloca espaço no disco (o arquivo de paginação, ou equivalente) para a memória necessária pelo programa, mas usa "paginação por demanda" para carregar somente na memória real a menor parte do programa e os dados necessários em qualquer ponto. Partes menos usadas (por exemplo, algumas sub-rotinas raramente usadas) podem nunca ser carregadas na memória real. Quando a memória real é necessária para outro programa, partes não utilizadas da memória real são usadas, se nenhuma, as páginas limpas mais antigas podem ser descartadas, se não houver páginas limpas, algumas "páginas sujas" de memória são gravadas no arquivo de paginação (se página é o mesmo que o original carregado a partir do arquivo binário do programa, não precisamos salvar uma cópia extra). A VM acompanha tudo isso.

Trocando

No passado, um método separado e mais desesperado de gerenciamento de memória chamado troca também era necessário. Hoje em dia os termos são usados quase como sinônimos.

    
por 21.09.2011 / 16:50
1

Os benefícios são:

  1. Ao compilar o código / tarefa, o compilador / vinculador precisa decidir / atribuir o endereço de código / texto (instruções), dados (variáveis globais), pilha.

O sistema com MMU (Unidade de Gerenciamento de Memória) (isto é, suporta a memória virtual),

O compilador / vinculador está livre para aceitar qualquer endereço conforme necessário. Enquanto o código estiver executando, a MMU converterá o endereço virtual em endereço físico.

O sistema sem MMU: o compilador e o linker têm que atribuir endereço dependendo da memória do sistema. Porque não deve usar a região de memória de outra tarefa.

Vantagem: o compilador / linker não precisa se preocupar com o mapa de memória do sistema.

  1. A programação de tarefas será mais fácil, porque o espaço de memória realmente alocado para a tarefa é muito alto quando comparado à disponibilidade de memória do sistema, (Isto é conseguido mantendo os dados / códigos necessários na memória principal e mantendo o resto em secundário armazenamento).
  2. A função de serviço do sistema não precisa ser duplicada. Todos os endereços virtuais de todas as tarefas do serviço do sistema podem ser mapeados para o mesmo endereço físico que contém o serviço do sistema.
  3. Em termos simples, a alocação de memória não precisa ser considerada durante a codificação de uma tarefa que seria tratada durante a execução da tarefa pela MMU.

Coming to your Question: If virtual memory is stored in main memory, then why even use it in the first place?Why not just use main memory?

memeory / endereço da Vitural é a representação do endereço físico / memória. Esta representação ajuda na obtenção de uma implementação multitarefa mais fácil, gerenciamento de memória, desenvolvimento de tarefas sem detalhes da memória do sistema.

    
por 02.05.2015 / 12:39