Todos os computadores acompanham um conjunto de dispositivos físicos, dos quais os principais e que se mais destacam nessa configuração é a unidade central de processamento (CPU, Central Proccess Unit), isto é o processador e a memória de acesso aleatório (RAM, Random Access Memory), também chamada de memória volátil pois depende de energia elétrica para que funcione e esteja disponível (as memórias não voláteis incluem os disco rígidos, cds e dvds pois não necessitam de energia elétrica para armazenar informações ou dados).
A função primordial da CPU é processar informações, isto é, é através dela que nosso computador é capaz de realizar sequências de instruções sequenciais que determinam como nosso computador deve agir. Enquanto que a função principal da memória é armazenar informações com as quais o processador trabalha. Desta forma, vamos simplificar o uso da CPU e da memória para uma pequena demonstração.
Se você usa seu terminal
Linux ou shell para escrever a seguinte operação:
# let SOMA="2 + 3";
A operação 2 + 3 será realizada pelo nosso processador, enquanto que a variável SOMA contendo o resultado da operação fica armazenada na memória volátil de nosso computador. Podemos visualizar seu conteúdo, com:
# echo $SOMA
Contudo isto está apenas na RAM de nosso computador, se desligarmos o computador perderemos o seu conteúdo, pois a RAM é volátil, e logo depende de energia para armazenar o que desejamos. Se quisermos armazenar o conteúdo desta operação na memória não volátil podemos fazer:
# echo SOMA=$SOMA > soma.txt
Ao usarmos o operador ">", redirecionamos através de uma função de E/S o conteúdo da memória volátil para a memória não volátil, armazenando sua saída. Desta forma criamos um arquivo que contém SOMA=5, o valor e a variável estará disponível no disco rígido para uso futuro.
Estou simplificando é claro o uso da CPU e da memória ao máximo do computador para efeitos didáticos, mas este é o funcionamento básico da mesma. Somente a CPU em um computador tradicionalmente tem acesso a memória do seu computador, e para que qualquer programa possa entrar em funcionamento ele precisa estar na memória RAM.
A razão pela qual não trabalhamos diretamente com a memória não volátil ao invés de usar uma memória de acesso aleatório como a RAM são muitas, mas entre as razões principais estão a velocidade de acesso, a comunicação entre CPU e RAM é muito veloz se comparada a velocidade de acesso entre CPU e disco rígido, e a fragmentação do disco rígido, nem sempre desejamos armazenar tudo o que executamos no computador, usar diretamente o disco rígido fragmentaria demais o seu conteúdo tornando ainda mais lento o processo de leitura ou gravação de um arquivo.