Índice das dicas
Iniciantes: entendendo os HDs
Por Carlos E. Morimoto em 2 de dezembro de 2009 às 08h47
19Apesar de toda a sua importância, a memória RAM funciona apenas como uma mesa de trabalho, cujo conteúdo é descartado ao desligar o PC. Isso nos leva ao HD, que serve como uma unidade de armazenamento permanente para dados e programas.
O termo "HD" vem de "Hard Disk", ou disco rígido (ele é também chamado de "disco duro" no português de Portugal) e surgiu como uma maneira simples de diferenciá-los dos discos flexíveis encontrados nos disquetes.
O HD armazena os dados em discos magnéticos que mantêm a gravação por vários anos. Os discos giram a uma grande velocidade e um conjunto de cabeças de leitura, instaladas em um braço 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 de três a cinco 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 chegasse aos discos poderia causar danos à superfície, devido à enorme velocidade de rotação dos discos. Fotos em que o HD aparece aberto são apenas ilustrativas, no mundo real ele é apenas uma caixa fechada sem tanta graça.
Apesar disso, é importante notar que os HDs não são fechados hermeticamente, muito menos a vácuo, como muitos pensam. Um pequeno filtro permite que o ar entra e saia, fazendo com que a pressão interna seja sempre igual à do ambiente. O ar é essencial para o funcionamento do HD, já que ele é necessário para criar o "colchão de ar" que evita que as cabeças de leitura toquem os discos.
A principal concorrente dos HDs é a memória Flash, que também serve como unidade de armazenamento permanente, funcionando basicamente como um HD sem partes móveis. Além de ser encontrada em pendrives e cartões de memória, a memória Flash é usada também nos SSDs, que lentamente estão roubando o espaço dos HDs em PCs de alto desempenho e também em notebooks:
Os SSDs são instalados em portas SATA e formatados exatamente da mesma maneira que um HD magnético. A maioria dos modelos oferecem um desempenho bem superior ao de um HD, com taxas de transferência mais altas e tempos de acesso mais baixos; o grande problema é o custo por megabyte, que é muito mais alto. Isso faz com que os SSDs sejam mais adequados como unidades de boot para a instalação do sistema e dos aplicativos e não para armazenamento de grandes arquivos. Em vez de vender as calças para comprar um SSD de 320 GB, você pode comprar um SSD de 80 GB e mais um HD magnético de 1 TB por muito menos.
Além da questão da capacidade, a grande diferença entre os SSDs e os pendrives e cartões de memória é o desempenho. Os SSDs usam controladores bem mais complexos e utilizam vários chips de memória Flash, que são acessados em paralelo, multiplicando o desempenho.
Os pendrives e cartões utilizam controladores muito mais simples, que são quase sempre combinados com um único chip de memória Flash, resultando em um conjunto muito mais lento e pouco adequado ao grande volume de requisições de leitura a que um HD ou SSD é sujeitado no dia a dia. Nas placas atuais, é perfeitamente possível usar um pendrive para a instalação do sistema (basta configurar a placa-mãe para dar boot através da porta USB), mas o desempenho é muito ruim.
Concluindo, temos a questão dos live-CDs. Tradicionalmente, o sistema operacional era sempre instalado no HD antes de poder ser usado. Enquanto está trabalhando, o sistema precisa frequentemente modificar arquivos e configurações, o que seria impossível em um CD-ROM ou DVD, já que os dados gravados nele não podem ser alterados.
Isso mudou com o aparecimento do Knoppix outras distribuições Linux que rodam diretamente a partir 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 salve os arquivos que forem alterados em um ramdisk, criado usando parte da memória RAM.
Isto tem algumas limitações: o desempenho é mais baixo e as configurações são perdidas ao desligar, já que tudo é armazenado na memória RAM. Pensando nisso, muitas distribuições permitem salvar as configurações em um pendrive ou em uma partição do HD, criando uma espécie de sistema híbrido, que roda a partir do CD-ROM, mas salva os arquivos em uma unidade de armazenamento permanente. Outra possibilidade é instalar diretamente o sistema em um pendrive, o que (na maioria dos casos) resulta em um desempenho bem melhor, graças aos tempos de acesso mais baixos.
Continuando, temos a questão do swap e do cache de disco. 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 apenas 256 ou 512 KB, milhares de vezes menos que usamos hoje em dia. Os mais abonados tinham dinheiro para comprar um megabyte inteiro, mas nada além disso.
Se você quisesse rodar um programa com mais de 256 KB, tinha que comprar mais memória, não tinha conversa. Sem outra escolha, os programadores se esforçavam para deixar seus programas o mais compactos possíveis para que eles rodassem nos micros com menos memória.
A partir do 386 os PCs ganharam suporte ao uso de memória virtual, um recurso que permite usar espaço do HD para simular a presença de mais memória RAM, amenizando o problema. A memória virtual pode ser armazenada em um arquivo especialmente formatado no HD, ou em uma partição dedicada (como no caso do Linux) e a eficiência com que ela é usada varia bastante de acordo com o sistema operacional, mas ela permite que o sistema continue funcionando, mesmo com pouca memória disponível.
A ideia básica é o uso do arquivo ou partição do HD como uma área de troca (ou swap) onde o sistema pode arquivar páginas de memória que não estão sendo usadas, liberando memória física. Quando alguma das páginas é necessária, o sistema a copia de volta para a memória (possivelmente copiando outras de volta para o HD) e assim continuamente, até que você feche alguns aplicativos e o sistema volte a ter memória disponível.
O grande problema problema com o uso de swap é que o HD é muito mais lento que a memória RAM. Enquanto uma sequencia de 4 leituras em um módulo de memória DDR2-800 demora cerca de 35 bilionésimos de segundo, um acesso a um setor qualquer do HD demora pelo menos 10 milésimos. A taxa de transferência nominal do mesmo módulo de memória é de 6.4 GB/s, enquanto mesmo um HD rápido, de 7200 RPM tem dificuldades para superar a marca de 80 MB/s, mesmo lendo setores sequenciais. Ou seja, a memória RAM possui nesse caso um tempo de acesso quase 300.000 vezes menor e uma taxa de transferência contínua quase 100 vezes maior que o HD.
Se lembrarmos que a memória RAM já é muito mais lenta que o processador (justamente por isso temos os caches L1, L2 e L3), fica fácil perceber o quanto o uso de memória swap por falta de memória RAM física pode prejudicar o desempenho do sistema.
A fórmula é simples: quanto menos memória RAM, mais swap é usado é usada e mais lento o sistema fica. Sempre que um aplicativo precisa de dados armazenados no swap, o sistema precisa primeiro copiar a página de volta para a memória RAM, para que só então o processador possa acessá-lo e continuar o processamento. É por isso que micros antigos podem ficar tão lentos, chegando ao ponto de demorarem minutos para chavear entre dois aplicativos.
Hoje em dia, o uso de swap não é mais um problema tão grande pois a queda nos preços da memória fez com que a maioria dos micros novos passassem a vir com pelo menos 1 GB. Entretanto, até pouco tempo atrás era muito comum ver PCs novos com apenas 256 ou até mesmo 128 MB de memória (dos quais ainda eram subtraídos a memória usada pelo chipset de vídeo onboard), que se arrastavam para executar até mesmo as tarefas mais básicas. Nesses casos, de nada adiantava um processador mais rápido.
É fácil monitorar o uso de swap. No Windows XP ou Vista basta pressionar Ctrl+Alt+Del e acessar o gerenciador de tarefas, enquanto no Linux você pode usar o comando "free" ou um aplicativo de gerenciamento, como o ksysguard.
No caso do Windows Vista é possível usar um pendrive como memória adicional, através do ReadyBoost. Neste caso entretanto, o pendrive é usado como uma extensão da memória swap e não como um substituto da memória RAM. Como o pendrive oferece tempos de acesso mais baixos, ele acaba sendo mais eficiente que o HD nessa tarefa, muito embora a taxa de leitura seja geralmente mais baixa.
Esse recurso pode ajudar em micros com pouca memória RAM e também reduzir o tempo de carregamento dos programas. É uma opção para casos em que você já tem o pendrive e procura um uso para ele, mas não espere milagres. Em se tratando de memória, não existe o que inventar: ou você procura um sistema operacional e programas mais leves, ou compra mais memória. Não dá para ficar em cima do muro.
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 é.
Esse recurso é chamado de cache de disco e (sobretudo no Linux) é gerenciado de forma automática pelo sistema, usando a memória disponível. Naturalmente, o cache de 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.
Você pode acompanhar o uso de cache de disco usando o comando free. Ao executá-lo em um PC que já está ligado a algum tempo, você vai notar que quase toda a memória aparece como ocupada. No screenshot a seguir, temos um PC com 3 GB, onde ele reporta apenas 146 MB disponíveis:
Como pode imaginar, quase tudo está sendo usado pelo cache de disco. A memória realmente ocupada aparece na segunda linha (-/+ buffers/cache). No exemplo temos apenas 754 MB de memória em uso, o que significa que o sistema está usando mais de 2 GB de cache de disco, o que resulta em um sistema muito mais responsível, onde aplicativos já usado carregam muito rápido.
Ironicamente, a forma mais eficiente de melhorar o desempenho do HD, na maioria das aplicações, é 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, servidores proxy e servidores de banco de dados costumam usar muita memória RAM, em muitos casos 4 GB ou mais.
Concluindo, outra forma de melhorar o desempenho do HD (sem precisar recorrer a um SSD) é usar RAID, onde dois ou quatro HDs passam a ser acessados como se fossem um só, multiplicando a velocidade de leitura e gravação. Esse 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, já que atualmente a maioria das placas-mãe já vêm com controladoras RAID onboard.
19 comentáriosPor Carlos E. Morimoto. Revisado 21 de março de 2011 às 16h28





Comentários