Qual é a diferença entre a memória virtual e a memória interna (RAM)?

4

Eu aloquei ~ 24GB do meu disco rígido como "memória virtual" - o que eu entendo ser o espaço extra que o computador pode usar como RAM. Meu sistema tem 8GB de RAM embutidos, então minha suposição é que estou bombeando uma enorme quantidade de 32 GB de RAM disponível.

Minha pergunta é: ~ 24GB de memória virtual são menos eficientes que minha memória RAM? E provavelmente mais importante, qual é a diferença real entre a memória virtual e a RAM física ?

    
por khaverim 02.05.2014 / 06:45

2 respostas

4

A definição de memória virtual pela tag SU (que eu escrevi):

Virtual memory is a technique to provide more address space than the available physical memory (the installed RAM).
Each process can be given its own virtual memory, and the hardware (the Memory Management Unit, MMU) translates every virtual memory reference to a physical memory address.

To accommodate situations when more virtual memory is in use than actual physical memory, space on a storage device (the backing store, or swap space or page file) such as HDD, SSD or even thumb drive can be used to "swap out" memory data and later "swap (back) in" as needed.
The swapped memory data is usually in data lengths called pages, but there are alternate schemes that use variable length segments or even paged segments.

A caixa de diálogo que você está mostrando é para configurar a quantidade de espaço em disco para o arquivo de paginação . Você não está alocando a memória virtual . Se você estiver usando uma CPU e SO de 64 bits, haverá 2 ^ 64 bytes de memória virtual por processo.

A memória virtual evoluiu de apenas uma técnica para fornecer mais espaço de endereço. A memória virtual é um componente chave no fornecimento de segurança para cada processo, para que um processo não possa interferir em outro processo, não seja comprometido por outro processo.

ADENDO

A dificuldade em descrever a Memória Virtual é que a Microsoft se encarregou de reinventar a descrição de como a VM realmente funciona no Windows, e publicou explicações enganadoras, como isto e this .
Mas a definição adequada de memória virtual aceita por desenvolvedores de sistemas operacionais que não sejam da Microsoft e por designers modernos de CPU, e como ela realmente funciona em computadores, é descrita neste artigo apresentação da arquitetura de computadores .
VM não é um tópico trivial, então, aparentemente, a MS distorceu a explicação para descrever os benefícios líquidos e o papel equivalente do arquivo de paginação. Infelizmente, a MS também optou por se referir ocasionalmente ao arquivo de paginação como "memória virtual", como se a "Memória Virtual" realmente residisse externa ao subsistema de CPU e memória, o que é contrário ao que alguém aprende em um curso de arquitetura de computador e Memória virtual, na verdade, é.

Observe que a "explicação" do MS Windows sobre sua memória virtual não faz menção à proteção de memória entre os processos. Essa omissão é um indício de que essa explicação é falsa. O uso da memória virtual é um mecanismo crucial para garantir a segurança em um computador e impedir que um programa de aplicativo interrompa outros programas ou o PC inteiro. O MS Windows não usa um mecanismo alternativo para isolar processos; ele usa memória virtual com o hardware MMU fornecido, assim como outros sistemas operacionais.

ADENDO 2

Veja aqui um artigo técnico da Microsoft que tenta usar termos de gerenciamento de memória convencionais. O mapeamento de "espaços de endereço virtual" para a RAM física é a operação destacada do que a comunidade de computadores conhece como mapeamento de memória da memória virtual.

A range of virtual addresses is sometimes called a range of virtual memory.

A inserção de "algumas vezes" é um pouco estranha, como se reconhecesse a definição convencional de "memória virtual" que o mundo não-MS usa e ainda não contradiz o MS (mau) uso desse termo.
Os endereços virtuais correspondem à memória virtual, assim como o endereço físico corresponde à memória física.

    
por 02.05.2014 / 08:55
1

A memória virtual é onde os processos carregados, mas não os atuais, podem ser estacionados.

Os programas na memória estão prontos para serem usados diretamente. É como ter um livro aberto na área de trabalho. Coisas que estão no arquivo de troca, é como ter o livro aberto na página da direita, mas sentado na cômoda atrás de você. Tem que ser trazido para a mesa primeiro, antes de usar.

Coisas que não são abertas é como estar na estante de livros. Você precisa buscar o livro e depois abri-lo na página certa.

Ter mais memória real é como ter uma escrivaninha maior: mais pode ser feito diretamente. Muita memória virtual também pode ser um assassino, porque o que está aberto nos aparadores, etc., é gerenciado na área de trabalho ou na memória real.

A velocidade é o marcador principal aqui.

Além disso, windos só pode lidar com um tamanho fixo de memória, esp 32 bit stuff Então, a menos que você esteja usando win64, 4gb está bem o suficiente.

    
por 02.05.2014 / 07:32