blank blank

Disco Rígido

No final das contas, a memória RAM funciona como uma mesa de trabalho. Os dados mesmo são armazenados no disco rígido, também chamado de hard disk (o termo em Inglês), HD ou até mesmo de “disco duro” pelos nossos primos lusitanos. É nele que ficam guardados programas e dados enquanto não estão em uso, ou quando o micro é desligado.

O HD armazena os dados em discos magnéticos que mantêm a gravação por vários anos. Estes discos giram e uma cabeça de leitura móvel faz o trabalho de gravar ou acessar os dados em qualquer posição nos discos. Junto com o CD-ROM, o HD é um dos poucos componentes mecânicos ainda usados nos micros atuais e, justamente por isso, é o que normalmente dura menos tempo (em média dois anos de uso contínuo) e que inspira mais cuidados.

Na verdade, os discos magnéticos dos HDs são selados, pois a superfície magnética onde são armazenados os dados é extremamente fina e sensível. Qualquer grão de poeira que entrasse iria começar a riscar os discos por causa da velocidade em que eles giram (7200 ou 10000 RPM nos atuais) o que faria com que em poucas horas quase todos os dados armazenados fossem destruídos. Fotos em que o HD aparece aberto são apenas ilustrativas, no mundo real ele é apenas uma caixa fechada sem tanta graça.

Tradicionalmente, o sistema operacional era sempre instalado no HD antes de poder ser usado. Enquanto está trabalhando, o sistema precisa freqüentemente modificar arquivos e configurações, o que seria impossível num CD-ROM, já que os dados gravados nele não podem ser alterados.

Isso mudou com o aparecimento do Demolinux, Knoppix, Kurumin e outras distribuições Linux que rodam diretamente do CD-ROM. Neste caso, um conjunto de modificações “enganam” o sistema, fazendo com que ele use a maior parte dos arquivos (os que não precisam ser alterados) a partir do CD-ROM, e o restante (os que realmente precisam ser alterados) a partir da memória RAM.

Isto tem algumas limitações: as configurações são perdidas ao desligar (a menos que você as salve em um disquete ou cartão de memória), pois tudo é armazenado na memória RAM e o conteúdo dela é sempre perdido ao desligar o micro.

Também é mais complicado (mas não impossível!) instalar novos programas pois é sempre preciso enganar o sistema fazendo-o gravar tudo na memória RAM. Por outro lado, a facilidade de uso é imbatível, pois basta inicializar o micro usando o CD do Kurumin e ele roda alegre e saltitante, sem precisar alterar o que já está instalado no micro.

Mas, voltando à função do HD, imagine que, como memória RAM é cara, você compra sempre uma quantidade relativamente pequena, geralmente 512 MB ou 1 GB, de acordo com o seu bolso. Por outro lado, você dificilmente vai encontrar um HD de menos que 80 ou 120 GB à venda. Ou seja, temos centenas de vezes mais espaço no HD do que na memória RAM.

Lembre-se de que o computador é burro, quando ele fica sem memória RAM, simplesmente trava. Não existe negociação com quem só entende uns e zeros.

Bem antigamente, nos anos 80, época dos primeiros PCs, você só podia rodar programas que coubessem na memória RAM disponível. Naquela época, a memória RAM era muito mais cara que hoje em dia, então o mais comum era usar 256 ou 512 KB (sim, kbytes, duas mil vezes menos que usamos hoje, tempos difíceis aqueles, nem existia Linux… :). Os mais abonados tinham dinheiro para comprar um megabyte inteiro mas parava por aí.

Se você quisesse rodar um programa com mais de 256 KB, tinha que comprar mais memória, não tinha conversa. Os programadores, coitados, tinham que deixar seus programas o mais compactos possíveis para que eles rodassem nos micros com menos memória.

Mais tarde, quando a Intel estava desenvolvendo o 386, um dos engenheiros bem pagos da empresa, num momento de criatividade despertada por iluminação divina, teve a idéia de criar um recurso chamado de memória virtual.

O processador (através de uma instrução incluída no microcode e ativada pelo sistema operacional) é instruído a mover alguns arquivos para o HD sempre que a memória RAM estiver acabando. Isso faz com que a memória nunca “acabe” e ele não trave. Enquanto tiver espaço no HD, ele vai caminhando.

O Linux sabe como usar memória virtual desde o comecinho, quando um russo pediu encarecidamente que Linus Torvalds incluísse o recurso para que ele pudesse rodar o Linux no seu 386 com 2 MB de RAM (não tente fazer isso em casa! :-).

O problema é que o HD é muito mais lento que a memória RAM. Se você for numa loja de informática qualquer e perguntar sobre os tipos de pente de memória que estão à venda, vai encontrar pentes de memória DDR de 2100, 2700 ou até 3200 MB/s (a memória conversa com o processador a até 3200 megabytes por segundo). Na pior das hipóteses, você vai encontrar um pente antigo de memória PC-100, que transmite a 800 MB/s.

Existe um comando no Linux que serve para mostrar de forma rápida o desempenho do HD, o hdparm. Quando o rodo no meu micro, que usa um HD IDE relativamente recente, ele diz o seguinte:

$ hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 158 MB in 3.03 seconds = 52.20 MB/sec

Ou seja, enquanto na memória RAM falamos de 2 ou 3 gigabytes por segundo, no HD falamos em algumas dezenas de megabytes. Para piorar as coisas, o tempo de acesso do HD (o tempo necessário para localizar a informação e iniciar a transferência) é absurdamente mais alto, em torno de 10 milessegundos, enquanto na memória RAM falamos em nanossegundos.

Agora você entende por que o Kurumin roda tão lento naqueles micros velhos com apenas 64 MB. O sistema até consegue trabalhar, com a ajuda da memória virtual, mas como uma grande parte das coisas acaba indo para o HD, tudo fica leeeeento, independentemente do clock do processador.

A fórmula é simples: quanto menos memória RAM, mais memória swap (memória virtual) é usada e mais lento o sistema fica. O processador, coitado, não pode fazer nada além de ficar esperando a boa vontade do HD em mandar à conta-gotas os dados de que ele precisa para trabalhar. Ou seja, quando você compra um micro com um processador de 3 GHz e 256 MB de RAM, você está literalmente jogando dinheiro no lixo, pois o seu processador super ultra rápido vai ficar boa parte do tempo esperando pelo HD.

Vender micros novos com 256, ou pior, apenas 128 MB de RAM, é uma atrocidade que deveria ser classificada como crime contra a humanidade ;).

Por outro lado, quando você tem instalado mais memória do que o sistema realmente precisa, é feito o inverso. Ao invés de copiar arquivos da memória para o HD, arquivos do HD, contendo os programas, arquivos e bibliotecas que já foram anteriormente abertos é que são copiados para a memória, fazendo com que o acesso a eles passe a ser instantâneo. Os programas e arquivos passam a ser abertos de forma gritantemente mais rápida, como se você tivesse um HD muito mais rápido do que realmente é.

Este recurso é chamado de cache de disco e no Linux é gerenciado de forma automática pelo sistema, usando a memória disponível. Naturalmente, o cache disco é descartado imediatamente quando a memória precisa ser usada para outras coisas. Ele é apenas uma forma de aproveitar o excedente de memória, sem causar nenhum efeito desagradável.

Ironicamente, a forma mais eficiente de melhorar o desempenho do HD, é instalar mais memória, fazendo com que uma quantidade maior de arquivos possa ser armazenada no cache de disco. É por isso que servidores de arquivos, proxy e de banco de dados costumam usar muita memória RAM, em muitos casos 4 GB ou mais.

Uma outra forma de melhorar o desempenho do HD é usar RAID, onde dois ou quatro HDs passam a ser acessados como se fossem um só, multiplicando a velocidade de leitura e gravação. Este tipo de RAID, usado para melhorar o desempenho é chamado de RAID 0. Existe ainda o RAID 1, onde são usados dois HDs, mas o segundo é uma cópia exata do primeiro, que garante que os dados não sejam perdidos no caso de algum problema mecânico em qualquer um dos dois.

O RAID tem se tornado um recurso relativamente popular, pois muitas placas-mãe já vêm com controladoras RAID onboard.

Sobre o Autor

Redes Sociais:

Deixe seu comentário