2008/05/12

RAM Disks - Quebrar a Barreira dos 4GB no XP

Com o preço da memória ao desbarato, é díficil encontrar um PC novo com menos de 2GB de Ram.

Mas, se mais RAM é sempre melhor, porque não usar 4GB ou 8GB de Ram?

O problema prende-se com a arquitectura actual dos computadores e sistemas operativos, pensados para um mundo de 32bits.

Embora muito se fale das versões "64 bits", o certo é que - para a maiora das aplicações/utilizadores - os 32 bits são mais que suficientes. No entanto, esses 32bits fazem também com que o máximo de memória utilizável por um sistema operativo de 32bits (Windows XP, Vista, Linux, etc.) seja de 4GB. Valor esse que é ainda mais reduzido quando consideramos que as motherboards utilizam endereços reservados para parte do hardware e periféricos, fazendo com que a memória realmente utilizável se fique pelos 2.5 a 3.5GB (com sorte.)

No entanto, nem tudo está perdido...

Falemos então dos RAM Disk.

Um ram disk é um método que usa um espaço reservado de memória, e o utiliza como se fosse um disco rígido. As vantagens são evidentes: velocidades de acesso instântaneas. Mas também há que ter em conta as desvantagens: perda total dos dados em caso de crash do sistema ou falha de electricidade.

Isto faz com que os ram disk sejam adequados para situações de uso intensivo, e onde os dados não contenham informação crítica, como por exemplo "swap files" e ficheiros temporários.

Se usar espaço de memória usado pelo sistema operativo para criar um RAM Disk é um contrasenso - a memória será hipotéticamente melhor utilizada pelo Sistema Operativo do que "desperdiçada" pelo RAM disk - se houver hipótese de usar o Ram Disk com memória que não possa ser usada pelo Sistema Operativo, então o caso muda de figura.



Como usar um Ram Disk usando memória fora do espaço de endereçamento do sistema operativo?

Como vimos, os sistemas operativos de 32bits estão impossibilitados de usar mais que 4GB de RAM. Portanto, se fosse possível usar o resto da memória para o tal RAM disk, isso daria a possibilidade de finalmente se tirar partido de mais memória.

Isto aliás está previsto na própria documentação da Microsoft:

"5. PSE36 RAM Disk
Through use of a kernel device driver, much like a RAM disk, it is possible to utilize memory above 4 GB with no change whatsoever to the operating system. Compatibility between the base operating system (running in 32-bit mode) and the driver (running in PAE mode) is maintained since the page tables are kept at 4 bytes wide." [Microsoft]

Vamos a um exemplo concreto: se colocarem 6GB de Ram na vossa Motherboard, 2 DIMMs de 2GB + 2 DIMMs de 1GB, podiam ficar com 3.5GB de Ram para o Sistema Operativo, e usar os restantes 2GB para o RAM Disk.

Este espaço de 2GB é mais que suficiente para aguentar com o swap file do windows, assim como servir de espaço de armazenamento temporário dos ficheiros dos vossos browsers e restantes programas.

Este truque é possível usando um driver do Ram Disk do Gavotte alterado para permitir o uso da memória tradicionalmente não usada pelo sistema operativo (usando a flag /PAE - Physical Address Mode), como podem ver nesta thread.

Esta versão permite:
01.01.2008 support >=4G ram under 32bit windows (UsePAE=1)

Uma explicação do processo de instalação do Ram Disk e activação dessa flag em "inglo-chinês" pode ser encontrada aqui e mais alguma informação nesta thread e neste artigo.

Nesta thread há um utilizador que diz ter tido sucesso a usá-lo com 8GB de memória.

É portanto possível "quebrar" a barreira dos 4Gb com o Windows XP e dar uso a toda a vossa memóra. :)

5 comentários:

  1. Foi por esta mesma razão que instalei o XP 64bits na minha máquina de trabalho :o/

    O problema depois são os drivers...

    Ontem tive a primeira dor de cabeça: drivers não oficiais para o leitor HD-DVD externo da xbox360 que, supostamente, funcionam no PC.

    Como a minha workstation está com XP 64 bits não há drivers para ninguém! Doh...

    Hugz,
    Luís

    ResponderEliminar
  2. Pois. Sei bem a que te referes.

    Alias, é uma aberração haver CPUs 64bits há N tempo (o meu velhinho AMD64) e no campo do software ainda estar tudo tão verde...
    (embora admita que para 90% das pessoas, os 64bits nem são necessários)

    Mas para um viciado em RAM como eu... a ideia de estar no limite da RAM utilizável é... stressante. :)

    ResponderEliminar
  3. Olá,

    Depois de reler este artigo (eu sigo o seu blogue já há alguns anos) peço ajuda para o seguinte: tenho o XP Pro com 2GB de RAM. Tenho por hábito ter várias abas abertas no Chrome e no FF. Com 2GB isto às vezes é desesperante... Eu ia comprar mais 2GB (DDR2, 800) mas lembrei-me que se calhar ficaria melhor servido com um disco SSD de 30GB para o Pagefile. O que é que acha? Fica um pouco mais caro que a memória RAM (+/- 20 Euros).
    Obrigado pela resposta.

    ResponderEliminar
    Respostas
    1. É uma boa pergunta...

      Neste caso, acho que ficarás melhor servido com os 2GB de RAM extra. Com mais memória nem sequer terás necessidade de ter um "paging file", pelo que o disco se tornará menos crítico para esse aspecto.

      (Claro que um SSD ajudaria noutros aspectos, como o funcionamento geral, arranque do Windows e dos programas, etc. Mas recomendaria que apenas pensasses nisso depois de já ter os 4GB de RAM... já que também não é muito recomendável ter um paging file constantemente em uso num SSD. :)

      Eliminar
    2. Obrigado pela resposta. É o que irei fazer (comprar RAM).

      Eliminar