O kernel do Win7 de 32 bits ainda consegue usar 2 GB com um programa Large Address Aware em execução?

2

Atualmente, estou executando o Windows 7 Professional de 32 bits com 6 GB de RAM.

Eu uso um patch PAE para permitir o uso de mais de 3,5 GB de RAM no Windows de 32 bits. Uma discussão similar aconteceu aqui:

O link para o patch para o Win7 SP1 está aqui: link

Enfim, para encurtar a história, eu tenho o patch instalado, mas se algum de vocês já jogou Skyrim pode estar ciente, a versão mais recente do Skyrim (1.3.10) tem o sinalizador Large Address Aware habilitado por padrão para permitir isso usar até 3 GB de memória no Windows de 32 bits e 4 GB de memória no Windows de 64 bits. É claro que, para aproveitar isso, você também precisa definir uma variável de ambiente de usuário em sua entrada BCD (userva = 3072) para permitir que o aplicativo use os 3 GB completos no Windows de 32 bits.

Aqui está a pergunta: Do meu entendimento de um amigo meu, o kernel do Windows de 32 bits só pode endereçar até 2 GB de memória para si mesmo. Com o patch da PAE habilitado e usando um aplicativo habilitado por LAA como o Skyrim, o kernel do Windows de 32 bits teria algum problema aproveitando adequadamente a memória extra disponível (por exemplo, ele ainda conseguiria endereçar 1 GB por causa de o limite original de 4 GB) ou o Windows conseguirá alocar memória suficiente para si mesmo, de modo que o kernel possa usar até os 2 GB necessários? Lembre-se, eu tenho 6 GB na minha configuração original.

Pelo que posso dizer, mesmo que os aplicativos não sejam projetados para funcionar com o PAE, um aplicativo ainda pode usar até 2 GB antes de atingir seu "limite", portanto, em teoria, posso ter até três aplicativos usando até 2 GB cada (fingindo que o Windows não está ocupando nenhuma memória, mas apenas um cenário teórico) e eu ainda estaria bem, já que o Windows está lidando com o espaço de memória em que esses aplicativos estão.

Por favor, sinta-se livre para me corrigir se eu estiver errado - eu não sou um programador, mas estou curioso para saber que tipos de tetos ou paredes possíveis eu vou encontrar usando esta configuração.

    
por White Phoenix 02.01.2012 / 13:16

2 respostas

4

Os limites de memória física e os limites de memória virtual são totalmente não relacionados. Um não tem nada a ver com o outro. O PAE remove o limite de 4 GB na memória física. Não tem conexão alguma com os problemas de 3GB / LAA que envolvem memória virtual.

Existe um problema desagradável. Com o modo de 3 GB ativado, o kernel tem apenas 1 GB de espaço de endereço disponível. Determinadas entradas do sistema, incluindo entradas para rastrear o uso e o mapeamento da memória física e todo o pool não paginado, devem residir nesse espaço de endereço. Portanto, seu sistema operacional pode ser restrito ao espaço de endereço. Isso pode causar problemas para sistemas operacionais de 32 bits, especialmente quando outras coisas consomem muito espaço de endereço, como placas de vídeo high-end.

Se isso está afetando você, o primeiro sintoma será networking misteriosamente falhando com erros estranhos. Veja, por exemplo, este segmento da Microsoft .

Você nunca mencionou que está usando / 3GB. Sem isso, os processos de LAA ainda estão limitados a 2 GB.

From what I can tell, even if applications aren't designed to work with PAE, one application can still use up to 2 GB before it hits its "limit", so in theory, I can have up to 3 applications using up 2 GB each (pretending Windows isn't taking up any memory, but just a theoretical scenario) and I'd still be fine since Windows is handling where in the memory space these applications are in.

Não! O limite de 2 GB está na memória virtual . Você tem 6 GB de memória física . Você pode ter 50 processos cada usando 2 GB e não atingirá nenhum limite, exceto o limite por processo em cada um desses 50 processos.

    
por 02.01.2012 / 13:52
2

The 32-bit Windows kernel can only address up to 2 GB of memory for itself.

Sim - o kernel não ocupa mais do que os 2 GB superiores dos 4 GB de espaço de endereçamento virtual do programa (ou mais de 1 GB, se você tiver o /3GB flag e o programa está ciente do endereço grande). Portanto, cada aplicativo tem garantia de 2 GB mais baixos de memória virtual (ou 3 GB no último caso).

Com o PAE, o kernel pode usar até 64 GB de memória física . Mas cada programa ainda tem um espaço de endereçamento virtual de 4 GB. Você não pode contornar isso de qualquer outra forma que não seja atualizando para um sistema de 64 bits.

From what I can tell, even if applications aren't designed to work with PAE, one application can still use up to 2 GB before it hits its "limit", so in theory, I can have up to 3 applications using up 2 GB each (pretending Windows isn't taking up any memory, but just a theoretical scenario) and I'd still be fine since Windows is handling where in the memory space these applications are in.

Sim.

Se um aplicativo precisar de mais de 2 GB de memória física , ele deverá usar AWE , mas duvido seriamente que o jogo faça isso (não é fácil programá-lo).

    
por 02.01.2012 / 13:57