Artigo 32-bit vs 64-bit e os 4GB de memória.

O que vez no teu print é a forma que a Microsoft encontrou a partir do Service Pack 1 do Vista para evitar chamadas de suporte de pessoas que compravam PCs com 4GB e só viam ali 3.

O sistema passou a detectar e indicar a quantidade de RAM, mas simplesmente não a utiliza.

Os truques para usar 4GB em 32bits, não serão muito fiáveis, caso contrário o sistema viria com essas definições de origem.

Isto que fiz para os 4GB também serve para o 8GB ou mais até. E também funciona em linux.
No print screen pode-se ver que ele detecta os 4GB e utiliza-os (como se pode ver no task manager). Mais uma vez, isto também é válido no Linux.

Será que tanto num SO como no outro ele detecta e diz que gere e está a utilizar apesar de não estar?
É um pouco estranho ele indicar 4GB em uso (no task manager) e só estar a usar 3GB. No mínimo devia detectar 4GB e indicar 3GB no task manager.
 
Tal como o ciberg disse, não ha magia nenhuma ai e eu pessoalmente duvido que o amigo retnuh tenha feito alguma coisa para "gerir" a memoria do pc.

Tenho um colega com o portatil tambem com o vista e com 4Gb de memoria instalados, qual não é o meu espanto quando vi o SO x86 detectar 4Gb mas depressa me apercebi que não tava a utiliza-los na realidade
 
Em primeiro lugar eu vim aqui com uma dúvida e não para me armar dizendo que fiz magias e coisas do género.

Em segundo, não fiz nada para "gerir" os 4GB. Simplesmente saquei um programa chamado "Ready_for_4Gb_Ram_Win7_32bit" para o windows. Não sei o que isto faz ao certo, sei que com isto o SO passou a detectar 4GB e a usá-los porque vê-se que estão em uso no task manager.

No linux (ubuntu), meti no terminal
$ sudo apt-get update
$ sudo sudo apt-get install linux-headers-server linux-image-server linux-server

e depois fiz reboot. Quando o ubuntu iniciou também verifiquei que tinha passado a gerir 4GB (em vez dos 3GB iniciais).

Pronto, agora, analisando o meu caso, verifica-se o seguinte:

Como puderam ver, diz (no lado esquerdo do print) que o SO é de 32bits e que tem 4GB de ram instalados (em vez de 4GB instalados mas 3GB utilizáveis, como anteriormente).
Mas isto são apenas informações, por isso recorri ao task manager para ver quanto é que efectivamente era gerido stressando a ram.

Ora, como está à vista de todos, diz lá quase 4GB em uso, ou seja, está a gerir 4GB (ou 96% de 4GB).
Se ele detectasse os 4GB mas só gerisse 3GB, não deveria aparecer no task manager 3GB em uso ao stressar a ram?

Por isso, a minha dúvida é a seguinte: Como é isto possível?
Como é que ele só suporta 3GB de ram e diz que estão 4GB em uso?

Notem que ele não diz que pode usar 4GB, diz que está a usar 4GB.

Pronto, era só isto que queria perceber.

Gostaria só que me explicassem o que está a acontecer sem recorrer a sarcasmos ou dizerem que duvidam disto ou outra coisa qualquer do género.
 
...
Gostaria só que me explicassem o que está a acontecer sem recorrer a sarcasmos ou dizerem que duvidam disto ou outra coisa qualquer do género.

Tens aqui a explicação, como já te disse há truques para usar os 4GB mas não são muito fiáveis:
in: http://chris.pirillo.com/32-bit-windows-and-4gb-of-ram/

Getting 32-bit Windows to recognize anything beyond 2GB of installed RAM is a seemingly futile effort. Even if your hardware supports the possibility, the software may hold you back – and performance gains are questionable:
The reduction in available system memory depends on the devices that are installed in the computer. However, to avoid potential driver compatibility issues, the 32-bit versions of Windows Vista limit the total available memory to 3.12 GB. If a computer has many installed devices, the available memory may be reduced to 3 GB or less. However, the maximum memory available in 32-bit versions of Windows Vista is typically 3.12 GB.
So, people use a PAE switch to get past the imposed 2GB barrier. Here’s a description of the 4 GB RAM Tuning feature and the Physical Address Extension switch:
When the /3GB switch is used with Windows XP Professional, with Windows Server 2003, Datacenter Edition, with Windows Server 2003, Enterprise Edition, the /3GB switch works identically across versions. This functionality lets device-driver developers test their drivers in this configuration without having to install one of the Windows Server 2003 products just listed. The user-mode memory space is now limited to 3 GB.
Sounds good, right? Not so fast:
The /3GB switch can cause some applications to have problems that are related to address dependencies or to a reduction in kernel space.
Bottom line: if you have 4GB of RAM in your system (or more), and you want to take full advantage of it, start using a 64-bit OS.

E mais um comentário no MSDN:
Enabling PAE, will limit to the OS to 2GB total. What PAE does is dedicate 2GB to OS and the other 2GB to anything other then the OS. Apparently some people don't understand how PAE works and think that some how it can magically make a 32bit XP use more then 4GB, which is impossible, so after noticing my explanation is not getting through, I thought a visual from MS itself might help sink it in, you can see it here: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx
  • Vista 32bit can see only 3.5GB of ram total. The new sp1 only reports how much memory you have intalled, not how much memory you can use.
AH! I was going to post these 'inconvenient facts' myself. the 'PAE' (please READ about your acronyms, people!) means 'Physical Address Extension'
Why is that important? the last word, really. 'Extension'. this does NOT enable you to use more than 4GB ram. Face facts people. This is a form of some memory management features,
more than anything else. This isn't even a 'Microsoft thing'. it's a 32-bit computing limitation. the 'Microsoft thing' part comes in because they've somehow given people
the idea that using this boot flag can somehow magically let your computer address more ram than any 32-bit OS is capable of.
 
Última edição:
Se a memoria não me falha antes de meter 7 x64, tinha o xp x86, e tinha os 4g de ram.
E eu não fiz nada, e o windows detectava-me os 4g. Mas salvo erro, não os usava. :)
 
Olá

Intereressante este tópico. A extensão PAE, de 36 bits, é usada pelo ubuntu de 32 bit quando é instalado em sistema de processador de 64 bit. Na realidade, a maioria das MB actuais, com processador de instruções de 64 bit, não faz mais do que endereçar até 64 GB, pois têm o endereçamento de 64 bits 'castrado' para 36 bits.
 
pequena dúvida

Em primeiro lugar, valeu a todos pelo tópico, foi muito esclarecedor. Acabo de me registrar neste forum para conversar com vocês :P

Uma pequena correcção, actualmente só estão a utilizar 40 bits para endereçar a memória. Não é que vá fazer diferença.

Então é como se nos ponteiros estamos utilizando 5 bytes (40 bits) ? O que daria um endereço máximo de 1,099,511,627,776 endereços possíveis ! O que resultaria num limite de memória de =~ 1.099 GB ?

--- outra dúvida que surgiu-me :
O ato do PAE é algo feito inteiramente pelo SO ?(parte software) e que a parte hardware não tem nem mesmo conhecimento ?

Cumprimentos,

Rafoka.
 
Então é como se nos ponteiros estamos utilizando 5 bytes (40 bits) ? O que daria um endereço máximo de 1,099,511,627,776 endereços possíveis ! O que resultaria num limite de memória de =~ 1.099 GB ?

Atenção, esses 40-bits são transparentes para o utilizador pois este continua a ver 64-bits para endereçamento. Como sabes a memória é virtual em que cada programa vê para si do endereço 0 até o máximo possível e à medida que ele vai precisando de mais memória vão sendo alocadas páginas virtuais para ele que têm uma correspondência a um endereço físico real. Estas páginas estão organizadas em 3 secções que seguem 2 crescimentos diferentes:

  • Do endereço 0 a um determinado endereço fixo (diferente para cada processo em memória) está contido o código de execução, strings, variáveis estáticas, etc.
  • Do endereço final anterior até a outro endereço mais distante encontra-se a stack que cresce para o fim da memória e contém as variáveis locais, argumentos de funções, return values, etc.
  • Do último endereço possível para o início (vai em direcção da stack) vai a memória heap que contém a memória alocada dinamicamente pelo malloc e afins.

O que na realidade acontece é que entre a stack e o heap existe um "buraco" que não consegue ser alocado pela limitação de bits disponíveis no controlador de memória.

Isto tudo para explicar que tudo tem 64-bits actualmente excepto o controlador de memória virtual. De resto o processador tem buses de 64-bit, registos de 64-bit, tudo em 64-bit!
Como dificilmente tanto a Stack como o Head cresceram tanto para requerer páginas em endereços não endereçáveis então acaba por não ser visível ao utilizador esta limitação.[/QUOTE]


O ato do PAE é algo feito inteiramente pelo SO ?(parte software) e que a parte hardware não tem nem mesmo conhecimento ?
É parte do SO e do hardware. Ambos têm de o suportar e quando é usado o SO ao activar o modo protected da memória (para utilizar memória virtual) tem de por a flag PAE = 1 no registo CR4 da motherboard.
 
Última edição:
Eu instalei há pouco tempo o Win7 64bits mas continua a dizer que apenas tenho 3,0Gb, quando na realidade tenho 4Gb. Afinal onde preciso de ir e o que preciso de alterar para passar a usufruir destes 4Gb??
 
ou é limitação do chipset, ou precisas de configurar algo na bios. memory remap ou opçao similar
eu tb tenho 4GB@32bit e aparecem-me 3.25GB (nao 3.0GB), com o tal memory remap activo
 
Última edição:
o meu portatil so suporta 2gb.

Não sei se é offtopic senao mas no my system do p4 ontem a board nao detectava os 3 gigas, so detectava 2, mas no cpuz estavam lá as 2 placas e dizia 3078MB, troquei as memorias uma com a outra, isto é, a de 2 para o slot onde tava a de 1 e vice versa e ficou bom.

Enfim... xD
 
Não é nada estranho pois os jogos não são 64bits. Espera até que saia um jogo 64bits nativo.... Pois jogos de 32bits em SO's de 64bits não terão o seu rendimento muito optimizado visto que o windows terá que emular os 32bits.
 
Back
Topo