RAM drive

RAM drive (também chamada de RAM disk), em português unidade de RAM ou disco de RAM, é um bloco da memória de acesso aleatório (armazenamento primário ou memória volátil) que o software de um computador está tratando como se a memória fosse uma unidade de disco (armazenamento secundário). Às vezes, é chamada de unidade de RAM virtual ou unidade de RAM de software para diferenciá-la de uma unidade de RAM de hardware que usa hardware separado contendo RAM, que é um tipo de unidade de estado sólido com bateria.

A utilização de unidades deste tipo é frequente em sistemas que não possuem unidades de armazenamento de leitura e escrita (máquinas diskless) e em distribuições Live de alguns sistemas operacionais.

As RAM drives são também muito utilizadas durante o processo de arranque dos sistemas operacionais para permitir a identificação dos dispositivos de armazenamento, o carregamento dos drivers adequados e a montagens dos sistemas de arquivos definitivos. Nestes casos a RAM drive pode ser designada RAM drive de inicialização ou simplesmente initrd.

DesempenhoEditar

O desempenho de uma unidade de RAM é, em ordens de magnitude gerais, mais rápido do que outras formas de mídia de armazenamento, como um SSD, disco rígido, unidade de fita ou unidade óptica.[1] Esse ganho de desempenho é devido a vários fatores, incluindo tempo de acesso, taxa de transferência máxima e tipo de sistema de arquivos.

O tempo de acesso ao arquivo é bastante reduzido, pois uma unidade de RAM é de estado sólido (sem partes mecânicas). Um disco rígido físico ou mídia ótica, como CD-ROM, DVD e Blu-ray, deve mover a cabeça ou o olho óptico para a posição e as unidades de fita devem girar ou rebobinar para uma posição específica na mídia antes que ocorra a leitura ou gravação. As unidades de RAM podem acessar dados apenas com o endereço de memória de um determinado arquivo, sem necessidade de movimento, alinhamento ou posicionamento.

Segundo, a taxa de transferência máxima de uma unidade de RAM é limitada pela velocidade da RAM, do barramento de dados e da CPU do computador. Outras formas de mídia de armazenamento são ainda mais limitadas pela velocidade do barramento de armazenamento, como IDE (PATA), SATA, USB ou Firewire. Para compor essa limitação está a velocidade da mecânica real dos motores, cabeças ou olhos de acionamento.

Terceiro, o sistema de arquivos em uso, como NTFS, HFS, UFS, ext2, etc., usa acessos extras, leituras e gravações na unidade, que apesar de pequenas, podem ser adicionadas rapidamente, principalmente no caso de muitos arquivos pequenos versus poucos arquivos maiores (pastas temporárias da Internet, caches da web, etc.).

Como o armazenamento está na RAM, é uma memória volátil, o que significa que será perdida em caso de perda de energia, seja intencional (reinicialização ou desligamento do computador) ou acidental (falta de energia ou falha no sistema). Isso geralmente é uma fraqueza (os dados devem ser periodicamente copiados em uma mídia de armazenamento persistente para evitar perdas), mas às vezes é desejável: por exemplo, ao trabalhar com uma cópia descriptografada de um arquivo criptografado.

Em muitos casos, os dados armazenados na unidade de RAM são criados a partir de dados permanentemente armazenados em outro local, para acesso mais rápido, e são recriados na unidade de RAM quando o sistema é reiniciado.

Além do risco de perda de dados, a principal limitação das unidades de RAM é a capacidade limitada, que é limitada pela quantidade de RAM na máquina. O armazenamento persistente com capacidade de vários terabytes tornou-se comoditizado a partir de 2012, enquanto a RAM ainda é medida em gigabytes.

As unidades de RAM usam a RAM normal na memória principal como se fosse uma partição em um disco rígido, em vez de acessar o barramento de dados normalmente usado para armazenamento secundário. Embora as unidades de RAM geralmente possam ser suportadas diretamente do sistema operacional por meio de mecanismos especiais no núcleo do sistema operacional, é possível também criar e gerenciar uma unidade de RAM por um aplicativo. Geralmente, nenhum backup de bateria é necessário devido à natureza temporária das informações armazenadas na unidade de RAM, mas uma fonte de alimentação ininterrupta pode manter todo o sistema funcionando durante uma falta de energia, se necessário.

Algumas unidades de RAM usam um sistema de arquivos compactado, como cramfs, para permitir o acesso rápido aos dados compactados, sem descompactá-los primeiro. Isso é conveniente porque as unidades de RAM geralmente são pequenas devido ao preço mais alto por byte do que o armazenamento em disco rígido convencional.

Exemplos de criação de RAM drivesEditar

Criação de uma RAM drive em MS-DOS, MS Windows 95 ou MS Windows 98Editar

Para criar uma RAM drive basta abrir o arquivo config.sys (localizado na raiz da partição de arranque) e inserir uma linha do tipo:

device=ramdrive.sys 1024 /e

Onde:

  • ramdrive.sys deve existir na pasta "Command" do Windows (C:\Command);
  • 1024 é o tamanho da unidade em bytes.

Essa forma de expansão de memória foi descontinuada no Windows 7.

Criação de uma RAM drive em GNU/LinuxEditar

mke2fs /dev/ram0
mkdir /mnt/ramdrive
mount /dev/ram0 /mnt/ramdrive

ou

mke2fs /dev/ram0
mkdir /mnt/ramdrive
mount -t ramfs ramfs /mnt/ramdrive

sendo o segundo de tamanho variável, apenas dependendo da quantidade de RAM e/ou espaço swap no computador.

Referências

  1. Kind, Tobias. «RAMDISK Benchmarks» (PDF). University of California. Consultado em 21 de março de 2019 

Ligações externasEditar