Artigos

O que é memória virtual?

quarta-feira, 18 de novembro de 2009 visualizações: 1.715

Conforme o passar dos anos, a tecnologia avança de forma astronômica, inundando nosso cotidiano com inúmeros recursos e facilidades difíceis até de imaginar. Mas, obviamente, assim como o hardware é aprimorado de forma considerável, os softwares também aumentam gradativamente suas exigências, aproveitando-se cada vez mais aquilo que lhe é proporcionado. E um dos setores mais requisitados nesta batalha é a conhecidíssima memória RAM.

Basicamente, por mais que um computador possua memória RAM em abundância, ainda assim há um limite, que, em prática, não é muito difícil de ser atingido. Basta, por exemplo, abrir inúmeros programas ao mesmo tempo para perceber as reclamações de um computador, devido à criação de diversas instâncias recheadas de exigentes processos. Um dos sinais mais perceptíveis consiste na incessante piscadela do led (geralmente uma luz vermelha localizada no gabinete) que indica o trabalho do disco rígido. Mas espere aí: segundo o que foi descrito no artigo Diferenciando os tipos de memórias (ROM, RAM e secundárias), um disco rígido não seria considerado uma memória auxiliar? Então, o que teria a ver com a memória RAM do computador (conhecida como memória principal)? Calma, logo chegaremos lá.

Muitos anos atrás, na velha guarda da informática, quando a memória RAM sobrecarregava, ocorria uma pane total no sistema. O chamado overflow acontecia porque não havia para onde “escoar” a saturação decorrente a tantas instâncias alocadas nas precárias e limitadas memórias da antigüidade. Visando-se uma solução prática e sem muitos custos inclusos, os sistemas operacionais começaram a implementar a então denominada memória virtual (também conhecida como técnica de swapping).

A memória virtual e seu funcionamento

Qual é a memória mais abundante em um computador? Quem respondeu “disco rígido”, acertou em cheio. E foi justamente este o alvo da tecnologia que emprega ainda hoje o conceito de memória virtual – uma solução que oferecia espaço de sobra e baixo custo por MB. Apesar de existirem mais de uma finalidade para a técnica, a principal consiste em fazer com que o disco rígido abrigue o excesso de dados existentes na memória principal (RAM). Além disso, quando programas residentes permanecem ociosos durante muito tempo, alguns sistemas operacionais preferem deslocá-los para a memória virtual, deixando assim maior espaço livre para outras atividades que possam surgir.

Claro que, neste exato momento, alguns devem estar pensando o porquê de não utilizar o disco rígido como sendo a memória principal. Afinal, sempre há muito mais espaço disponível do que o existente na memória RAM. Bem, se analisarmos somente as nomenclaturas que estão envolvidas, já encontraremos grande parte das respostas… A definição “memória secundária” não é dada por acaso a meios de armazenamento: eles são muito mais lentos do que as memórias principais.

Talvez hoje você não note tanta diferença, pois provavelmente possua um computador muito mais moderno do que antigamente. Mas duvido a existência de alguém que ainda não tenha perdido a paciência diante de um equipamento, quando, na ocasião, teve que abrir vários programas e esperar exaustivamente o processamento dos mesmos. Claro, parte dessa responsabilidade cabe também a outros periféricos, tais como processadores, placas de vídeo, etc., mas tenho certeza de que, em grande parte dos casos, um aumento considerável de memória RAM amenizaria o problema enfrentado. Sem memória principal disponível a todos os softwares que a requisitaram, o sistema precisa liberar espaço, armazenando no disco rígido alguns módulos que achar necessário. Mas, o maior empecilho nesta técnica é o fato de que, caso todos os processos estejam trabalhando ativamente, alguns terão que ser enviados à memória virtual mesmo assim. Surge então um irritante impasse, onde o sistema precisará enviar e trazer de volta constantemente módulos que requisitam execução no momento; com isso, ocorre a lentidão que todos nós já presenciamos.

Para entender de forma mais plausível, vejamos da seguinte forma: Você possui uma pequena sala comercial num grande centro, e não muito longe um grande depósito onde pode abrigar todas as suas mercadorias. Supondo que, em um dia tumultuado, muitos clientes surgem ao mesmo tempo em sua sala, fazendo compras e devoluções quase que simultâneas. Para reduzir o exaustivo trabalho de um funcionário ter que buscar constantemente as mercadorias no depósito, você resolve deixar boa parte dentro do seu escritório.

O problema é que você abarrotou seu pequeno espaço com encomendas, sendo que muitos clientes ainda não as retiraram. Em contrapartida, surgem pessoas interessadas em produtos que estão somente no distante depósito. E, para disponibilizar espaço no seu local, terá que levar encomendas que ainda não foram retiradas de volta para o estoque, trazendo então a mercadoria que o cliente atual está exigindo. Mas, nesse meio tempo, surge o cliente que solicitava o produto anterior; novamente terá que escolher outros produtos para levar ao depósito, disponibilizando assim de espaço para abrigar um produto que já se encontrava nele anteriormente.

Perceba que surge uma dificultosa situação para sua empresa: você e seus funcionários não irão parar de correr, pois a demanda é maior do que sua mão de obra e seu espaço disponível. E, assim como neste comparativo, os sistemas computacionais se portam da mesma maneira: seu escritório é a memória RAM do computador – um local ágil, facilmente acessível e o principal local de trabalho; o depósito é comparável ao disco rígido, possuindo amplo espaço, mas pecando pela velocidade no seu acesso.

Ainda seguindo a analogia, porque não alugar uma sala mais próxima do escritório? Provavelmente pelo fato de que devem existir poucas salas disponíveis nas proximidades do seu promissor local de trabalho, além de que provavelmente o aluguel seria caríssimo. Transcrevendo o exemplo para a realidade tecnológica, as poucas salas podem ser comparáveis às limitações de expansão que grande parte dos equipamentos possui, quando o assunto é a memória RAM; e o alto preço dos aluguéis traduz-se nos elevados custos que se paga por MB, ao comparar uma memória RAM com um disco rígido, por exemplo.

Sistemas operacionais e as diferentes formas de tratar a memória virtual

Linux – No ambiente do pingüim, a memória virtual requisita uma partição separada (Linux swap), que é configurada na instalação do sistema operacional. Teoricamente, tal medida facilita o manuseio dos dados, possibilitando ainda a diminuição de possíveis problemas relacionados ao sistema de arquivos.

Windows – Por padrão, o sistema operacional mantém um arquivo no disco rígido que crescerá conforme a necessidade de espaço, mas o mesmo poderá ser configurado com um tamanho fixo, caso o usuário desejar. Apresentarei este recurso em um tutorial que publicarei nos próximos dias.

Problemas comuns ocasionados pela falta de memória virtual e suas causas

Não é segredo o fato de que, dependendo o equipamento, erros corriqueiros de memória virtual surjam constantemente na tela. Com isso, os usuários modernos acabam enfrentando problemas semelhantes aos que eram encontrados anos atrás em computadores muito inferiores: perda de informações, congelamentos de programas, lentidão e até mesmo a reinicialização involuntária do sistema. Mas saiba que a técnica de swapping não é exatamente a vilã da história. Veja abaixo as causas mais comuns de erros decorridos pela falta de memória virtual:

  • Falta de espaço no disco rígido;
  • Espaço para swapping definido com tamanho muito pequeno;
  • Inexistência de um arquivo (Windows) ou partição (Linux) para implementar a memória virtual.

Considerações finais

Apesar de trazer algumas limitações, é importante salientar que a presença de uma memória virtual é importante para a atual forma de como os sistemas de arquivos se portam em ambientes tecnológicos. Embora existam maneiras simples para desabilitá-la (o que, em teoria poderiam acarretar em um melhor desempenho), a presença da memória virtual evita que ocorram erros diversos decorrentes da sobrecarga de processos que possam vir a ser criados na memória RAM.

Se porventura alguma dúvida tenha permanecido, basta postá-la na seção de comentários abaixo. Tentarei saná-las na medida do possível.

Roberto Tadeu Fauri

Veja também:

Tags: , , , , ,

3 comentários »

  • domelhor.net diz:

    O que memria virtual?…

    Entenda facilmente o que a memria virtual, e saiba por que tal tcnica amplamente utilizada pelos sistemas operacionais….

  • Roberto via Rec6 diz:

    O que é memória virtual?…

    Entenda facilmente o que é a memória virtual, e saiba por que tal técnica é amplamente utilizada pelos sistemas operacionais….

  • homero da silva nahum diz:

    Para mim, foi uma aula didática e pragmática… Poucos, conseguem fazer uma analogia entre a informática atual e a do passado! Geralmente, as pessoas são muito imediatistas neste particular. Como é uma área extremamente dinâmica; o passado não está muito em evidência. Porém, quem trabalhou com os equipamentos de grande porte da época, antes do lançamento dos Pcs;entendeu e gostou das preciosas informações.
    Atenciosamente,
    Homero

Deixe seu comentário!

Adicione seu comentário, ou faça um trackback de seu próprio site. Você pode também inscrever-se via RSS.