Memória virtual vs. espaço de endereço virtual

3

Eu sei que a memória virtual é um arquivo de paginação que o computador usa para armazenar uma parte da RAM no disco rígido para um processo em execução. Mas quão diferente é o espaço de endereço virtual? é a RAM ou o disco rígido ou ambos?

    
por Karen15 06.09.2011 / 19:42

3 respostas

8

O espaço de endereço virtual é o que um programa individual vê quando é executado. Dependendo de como o programa foi configurado, esse espaço de endereçamento será tão grande quanto o máximo suportado pelo sistema operacional.

O kernel do sistema operacional é então responsável pelo mapeamento de endereços no vas para a memória física, seja para a RAM ou para arquivos de páginas do sistema.

Com esse design, os próprios programas permanecem inconscientes dos recursos e dos endereços reais, e podem operar como se tivessem toda a memória do sistema para si mesmos, ou pelo menos a memória máxima que um único processo pode usar.

Em poucas palavras, um programa funciona com o VAS, e o sistema operacional manipula o mapeamento de VAS para o armazenamento real, de modo que isso seja invisível para o programa em execução. O programa em execução vê apenas o seu VAS.

    
por 06.09.2011 / 20:23
0

O espaço de endereço virtual é o que o processo vê. Por exemplo, seu e-mail fica em uma caixa de entrada de 25 GB. Esse é o seu espaço de endereço virtual.

O espaço de endereço virtual é para distinguir o fato de que nem todo espaço de endereço virtual corresponde a um espaço de endereço físico . Digamos que você tenha 20 usuários de e-mail com 25 GB de espaço na caixa de entrada. Mas você só tem 100 GB de espaço em disco no seu servidor. Bem, você pode pegar e-mails antigos e arquivá-los e manter apenas os mais recentes em seu servidor, porque as pessoas geralmente só verificam o e-mail mais recente.

Arquivar e-mails do servidor para, digamos, uma unidade de fita é semelhante às partes de paginação de RAM do computador para o disco. Quando alguém vai olhar para o e-mail antigo, basta "enviar" o antigo e-mail da fita de volta para o servidor. O usuário de email nunca saberá a diferença.

Da mesma forma, cada processo em sua máquina tem espaço de endereço virtual X , mesmo que você tenha menos de X * number of processes de memória física.

Memória virtual é exatamente isso. Espaço de endereço virtual. Mas a memória virtual é apenas o espaço de endereço virtual que você está usando.

    
por 06.09.2011 / 20:04
0

O espaço de endereço virtual é uma limitação do tamanho da memória que um programa pode endereçar.

Isso é restrito no limite externo pelo estilo de ponteiros - um ponteiro puro de 32 bits pode, em teoria, endereçar 4 GB de espaço virtual. O limite real depende do design do sistema operacional, pois usa uma parte significativa do espaço de endereço ao lado do espaço do usuário.

No Win32, a configuração padrão é permitir espaço de endereço virtual de 2 GB como espaço do usuário.

Um ponteiro de 64 bits pode endereçar muito mais, na prática tipicamente 48bits são permitidos e há muitos detalhes em este superusuário responde .

Em teoria, alguém poderia construir um computador físico com RAM suficiente para mapear diretamente 2 GB de espaço do usuário na memória física (provavelmente precisando de pelo menos 3 GB de físico) para ter 32 bits onde a memória virtual não era muito virtual.

    
por 23.11.2015 / 09:18