Limite de 2 GB em sistemas operacionais de 32 bits

8

O limite de 2 GB nos sistemas operacionais de 32 bits significa que cada processo pode acessar apenas 2 GB de memória ou que todos os processos juntos podem usar apenas 2 GB da memória física no total?

Então, os 2 GB reservados para o kernel limitam a quantidade total que todos os processos juntos podem usar?

Cientista maluco
fonte
Observe que Fabian está se referindo apenas à memória física, não ao arquivo de paginação.
Arda Xi
Ele também está se referindo apenas ao Windows, não a sistemas operacionais em geral.
Arda Xi
Ele pode estar perguntando sobre isso, mas não existe esse relacionamento. Cada processo pode acessar 2 GB virtuais. Alguma fração disso estará na RAM ("residente"). Nas versões de cliente de 32 bits do Windows, o total da memória residente de todos os processos e a memória residente do sistema operacional não podem ter mais de 4 GB. Não há divisão de 2 GB na alocação de memória física.
Jamie Hanrahan 26/09
A resposta aceita neste post fornece informações completas - stackoverflow.com/questions/490520/…
RBT 18/08/16

Respostas:

4

Existem muitos conceitos errados sobre o limite de memória nos sistemas operacionais Windows de 32 bits.

Primeiro de tudo, quando digo RAM, isso inclui todo tipo de RAM. Portanto, não apenas regular, mas também a sua RAM de vídeo.

A quantidade máxima disponível de RAM por processo para um sistema operacional de 32 bits é de 2 GB. Se você possui um sistema operacional de 64 bits, um processo de 32 bits pode alocar até 4 GB.

Além disso, todo o sistema operacional pode endereçar apenas 4 GB para cada processo combinado, enquanto sistemas operacionais de 64 bits podem alocar 8 TB.

Também interessante é que esse limite se soma ao pool paginado. Isso significa que um sistema operacional de 32 bits não pode usar mais de 2 GB no total, o que significa 6 GB para todos os aplicativos, incluindo memória virtual. Obviamente, isso não tem nada a ver com RAM, porque os outros 2 GB seriam armazenados no arquivo de paginação, limitado à velocidade do disco rígido.

Para mais informações, consulte Limites de memória para versões do Windows .

Nota: isto é apenas para aplicativos. Um sistema operacional Windows de 32 bits pode alocar até 4 GB no total, mas 2 GB disso são alocados apenas para uso do sistema, deixando apenas 2 GB para uso dos aplicativos. Em certos casos (especialmente sistemas operacionais mais recentes), isso é dividido em 3 GB para aplicativos e 1 GB para o kernel.

Eu apenas discuti o Windows porque esse é o contexto em que a pergunta foi feita. Não estou familiarizado com os limites de outros sistemas operacionais.

Arda Xi
fonte
2
essa resposta não está completa - ela não inclui o conceito de "espaço de endereço", além de dizer que a memória de vídeo está incluída, e o fato de o espaço de endereço nos sistemas operacionais de 32 bits estar realmente limitado a 4 GB sem extensões, não a 2 GB (você pode mesmo dizer uma cópia de 32 bits do XP para boot com 3GB de RAM)
lunixbochs
11
A questão não era sobre o que é o espaço de endereço. Eu poderia aborrecer todos vocês discutindo a maneira como a memória é abordada e o limite de números inteiros de 32 bits, mas não é disso que se trata esta pergunta, portanto parece desnecessariamente complexa. E sim, você pode usar a opção / 3GB. Esta questão não inclui isso.
Arda Xi
11
O limite de 4 GB de memória se aplica apenas à memória física na arquitetura padrão de 32 bits x86. A memória virtual é diferente e os sistemas operacionais de 32 bits podem utilizar muito mais que 4 GB de memória (total não por processo) se estiver usando um arquivo de paginação ou uma partição de troca. A velocidade do disco rígido não influencia o tamanho do arquivo de paginação disponível nem o espaço de troca, se o disco rígido tiver espaço, do que pode paginar ou trocar. Isso afeta apenas o desempenho de paginação / troca.
11
Ah, eu esqueci de mencionar, a ram de vídeo não é um fator, a menos que seja ram integrada de vídeo compartilhando a ram principal, mas mesmo assim subtrai apenas a ram física disponível. Não afeta a memória virtual disponível. As placas de vídeo dedicadas têm seus próprios processadores e memória que não têm nenhum fator na memória disponível do sistema.
@ Spooky Não é completamente verdade. Se você olhar no meu link, verá que o pool paginado é limitado pelo espaço de endereço virtual no modo kernel, que é de 2 GB. Isso significa cerca de 6 GB no total.
Arda Xi
0

Se o OP estiver se referindo aos sistemas operacionais Windows, todos os sistemas operacionais de 32 bits serão limitados ao total de 4 GB, exceto para o datacenter ou empresa do servidor 2003 com um conceito chamado PAE (extensão de endereço físico). Isso também está disponível nos kernels linux modernos. Obviamente, processadores de 32 bits estão se tornando mais raros fora do espaço móvel.

skub
fonte