Primeiramente gostaria de afirmar a todos que sou novo no mundo
Linux e sou plenamente a favor do compartilhamento do conhecimento, assim fazendo um país melhor para todos. É com muito prazer que estou fazendo esse primeiro tutorial e espero que tenha paciência, pois é muito difícil não errar na primeira vez. Bem, vamos deixar de conversar e pôr a mão na massa. :-)
A memória RAM, como o próprio nome já diz, (Random Access Memory) memória de acesso aleatório, é uma memória volátil, isto é, quando se é cortada a energia ela perde os dados, diferentemente de outros dispositivos de armazenamento de massa (HDs, CDROMs, PEN DRIVES e etc), além também de ter a capacidade bem reduzida diante desses dispositivos. Então você deve estar se perguntando: "Então porque utilizar esse tipo de memória?". A resposta para essa pergunta está logo a diante.
O processador é o dispositivo mais rápido em um sistema computacional, havendo assim uma diferença muito grande entre ele e outros dispositivos de armazenamento de massa, como HDs, CDROMs, PEN DRIVERS e etc. Então se houvesse a comunicação direta entre o processador e esses dispositivos, haveria uma espécie de gargalo, pois esses dispositivos não conseguiriam acompanhar o ritmo do processador. Diante disso foi necessário criar um tipo de memória que fizesse essa ligação e que fosse capaz de se aproximar mais da velocidade do processador (embora a memória RAM seja muito rápida, nunca ela conseguirá alcançar a velocidade do processador. Essa memória se chamou de memória RAM. Depois que ela apareceu diminuiu bastante o gargalo, trazendo assim o aumento da performance do computador.
Memória RAM no Linux
A memória física no Linux é a memória RAM propriamente dita (os módulos de memória). Já a área de troca é um espaço ou partição que geralmente é criada no HD que serve para desempenhar a função da memória, caso exista falta de espaço na memória RAM, evitando assim a perda drástica de desempenho. A união das duas formam memória virtual.
No Linux a memória funciona da seguinte maneira, processos que estão em execução tem prioridade na memória, quando termina um processo e se tiver espaço na memória, ficam resíduos desse processo na memória para uma futura volta desse processo ser mais rápida. Caso essa memória RAM esteja lotada com processos que estão em execução, aí começa a utilização da memória SWAP (troca). Siga os exemplos abaixo que você ira entender:
Digamos que você está com 64 MB de memória RAM e uma SWAP (área de troca) de 200 MB.
Carrego um processo que utiliza espaço de 12 MB e outro de 4 MB, após terminar os processos ficarão resíduos na memória para que futuramente sejam carregado mais rapidamente esses processos.
Carrego agora 3 processos, cada um com 20 MB de memória, após ser terminado um processo ficarão resíduos somente do que sobrou de espaço, pois ele prioriza os processos que estão em execução.
Pegando o exemplo anterior, com os 3 processos em execução, executo mais 1 de 20 MB, após verificar que a memória RAM está cheia, ele começa a utilizar a memória de troca (SWAP).
Verificando a memória
Para verificar como está sendo o uso da memória no Linux utiliza-se o comando:
$ free -m
Esse comando mostrará algo assim:
total used free shared buffers cached
Mem: 250 246 4 0 1
-/+ buffers/cache: 183 67
Swap: 564 12 552
Na linha Mem é mostrada a memória física, em -/+ buffers/cache são mostrados somente os processos que estão em execução e quanto tem disponível, ignorando os resíduos de outros processos e em SWAP é mostrada a área de troca usada.