GDH Press: Blog » Iniciantes: entendendo os HDs
 
RSS

Iniciantes: entendendo os HDs

Publicado em 02/12/2009 – 08:47
por Carlos Morimoto

Apesar 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.

hd_html_m247e28ff

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:

hd_html_m75835c34

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:

hd_html_m390a6dd7

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.

» Mais posts

  1. 20 respostas para “Iniciantes: entendendo os HDs”

  2. Luis Marks em 2 dez, 2009

    É para iniciantes mas acabei aprendendo um pouco sobre o Readyboost. Valeu Morimoto !

  3. Piu em 2 dez, 2009

    esses textos ajudam muita gente
    obrigado
    ^^

  4. duard em 2 dez, 2009

    Vale lembrar o nome do maior fabricante de PCs para inclusão-digital, que vendem estes PCs podres ?

    Conheço várias pessoas com PC "negativo". Todos compraram com 36 prestações ou mais, e todos estes PCs são estupidamente lentos.

    Com 128mb de ram, no PC negativo de minha prima, ela insiste em usar o Win XP. Já disse a ela que um linux com Xfce, ela conseguiria :

    Bater papo no msn
    Visitar o orkut dos amigos idiotas dela

    Mas a topeira insiste no XP. Então, dane-se ela e o seu NEGATIVO.

  5. Carlos Morimoto em 2 dez, 2009

    Acredito que nesse caso a melhor solução seria simplesmente instalar um segundo módulo de memória. Mesmo que o PC ainda use memórias DDR (que hoje em dia são bem mais caras) você poderia expandir para 384 ou 640 MB gastando pouco. É só procurar alguém vendendo módulos de segunda mão.

  6. Arnaldocan em 2 dez, 2009

    Ótimo artigo!

    Tenho um comentário em relação ao trecho:

    "Nas placas atuais, é perfeitamente possível usar um pendrive para a instalação do sistema (…) mas o desempenho é muito ruim."

    No meu caso, uso Linux em um Pendrive para ter o mesmo ambiente e os mesmos programas em diferentes computadores que uso no dia a dia. A instalação foi feita de maneira convencional, sem o uso de imagens comprimidas.

    Embora exista uma degradação de desempenho do sistema durante a abertura de programas e durante a cópia de arquivos, o desempenho geral tem sido bastante satisfatório, considerando a portabilidade oferecida pelo pendrive.

  7. Thiago em 2 dez, 2009

    Muito bom! Eu não sabia desse recurso do cache de disco. Isso é muito interessante. Com isso justifica-se até mesmo máquinas antigas se beneficiarem colocando-se mais memória RAM.

  8. alejandro Pinto em 2 dez, 2009

    no decorrer da utilização do disco rígido, sabe-se que ele vai se fragmentando com os ficheiros que são eliminados e escritos sucessivamente, ouvi falar
    que a memória ram também se fragmenta como o hd e pode ser desfragmentada atravéz de diversos utilitários, é verdade?

  9. pardal em 2 dez, 2009

    Muito obrigado pelas informações! Parabéns pelo texto.

  10. Hercules Merscher em 4 dez, 2009

    Alejandro Pinto, respondendo sua dúvida, é verdade sim que as memórias se fragmentão também, porém isso era mais problemático tempos atrás, quando os sistemas operacionais ainda não tinham um gerenciamento dinâmico de memória bem elaborado. Hoje qualquer SO atual já lida com esta situação de forma bem menos dolorosa, mas ainda pode ficar com a memória fragmentada, mas só é perceptível quando a máquina fica ligada por bastante tempo, ou seja, fica alguns dias ou meses. Quando isso acontece, se não puder desligar o equipamento pode usar um software que desfragmente sua memória, e existem vários, é só procurar no google, mas esse processo irá consumir bastante recursos de sua máquina, já que estará mudando os endereços de memória para realocar os arquivos carregados na mesma.

    Me corrijam se estiver errado.

    Morimoto, ótimo artigo, como sempre!
    Agora entendi por completo o cache de disco implementado no Linux. Muito bom!

  11. Clovis em 5 dez, 2009

    Como esta coluna é para iniciantes,no meu caso bem iniciante mesmo , conheço muitas pessoas tipo aquelas que usam o pc pra navegar orkut etc etc , e neste caso o Linux ainda não é uma ferramenta completamente de facil dominio para quem usa o pc sem maiores interesses tecnicos , mas pelo que li acima parece que o Linux vai ter muito futuro?
    Outra coisa fiquei na duvida é bom ou não desfragmentar o disco ( HD)? no mais exeçlente em todos aspectos e todos comentarios

  12. Clovis em 5 dez, 2009

    perdão errei no meu endereço de email

  13. alejandro Pinto em 5 dez, 2009

    obrigado pela resposta Hercules Merscher.

  14. iglesias em 6 dez, 2009

    simples mais muito util ;)

  15. salesio em 14 dez, 2009

    show de bola esse texto…

    gostei muito…

  16. katsuriko em 29 dez, 2009

    artigo para iniciantes, onde?

    acho que o Morimoto tem um conhecimento tão avançado, que ele acabou resumindo vários assuntos em um artigo, onde sem haver conhecimento prévio, muita coisa não você compreenderá. Mas isso vem do interesse de cada e complementando o que os colegas acima falaram, é sim um ótimo artigo.

    só queria fazer uma ressalva, a tecnologia do Readyboost, acho eu, que ainda esta engatinhando, pois como fica claro nessa parte:

    "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."

    o HD tem uma taxa de transferencia de 80MB/s no pico de seu uso e a memoria de 6,4 GB/s e um pendrive dual channel tem capacidade de leitura no pico de 32MB/s.

    assim o readyboost hoje é mais um mito que um avanço, quem sabe com a USB3.0 seja melhorada a tecnologia e possa surtir algum efeito visivel no desempenho.

    me corrijam se estiver errado, mais é isso que eu compreendi lendo alguns artigos.

    fonte de consulta: http://www.overbr.com.br/forum/mini-review-pen-drive-ocz-rally2-16gb-dual-channel-t9281.html?t=9281

  17. staionof em 8 jan, 2010

    Faltou falar sobre o buffer dos HDs modernos.
    Qual a função o ganho real.
    Aliás, os anunciantes alardeam muito quando estão vendendo um HD com 32mb de buffer e omitem quando o Hd tem 16mb.
    A questão é que quase não há diferença de preço entre HDs de capacidade igual com buffer diferente, assim como de HDs de 7200rpm com de 5400rpm: por incrível que pareça existem HDs de 1Tb que rodam 5400rpm e são vendidos com preço igual aos de 7200rpm, quando muito dez reais mais barato; alguns comerciantes mau-intencionados tentam vender gato por lebre.
    É importante ficar atento nesses detalhes.

  18. Pablo em 13 jan, 2010

    Achei o artigo até legal, só que o Título é não traduz exatamente o que está no conteúdo do texto.

    Lendo o texto aparece mais coisas de SO's que qualquer outra coisa.

    Ao ler o título, tive a idéia de um artigo que falasse sobre como os dados estão armazenados no HD. Como são divididos os setores, tempo de leitura. Como os dados são particionados, como os dados são gravados de forma não contígua para uma leitura sequencial, e o melhor de tudo, o Porquê que eles são armazenados assim.

    Enfim não há problemas com o texto, mas o título não saiu legal e eu acabei me frustrando com o conteúdo.

  19. Richard Van Dehrer em 14 jan, 2010

    Ui. Aspectos de gerenciamento de disco em nível de software também são importantes, e indissociáveis do sistema operacional. Não vejo nada de errado com o título.

    Só faltou falar que o RAID 0 só deve ser usado com HDs iguais, ou pelo menos com velocidades parecidas. Não que isso não seja óbvio.

  20. freeHDonline em 9 jun, 2010

    Muito bom, vlw pelo artigo

  1. 3 Trackback(s)

  2. jan 13, 2010: GDH Press: Blog » Entendendo os HDs, parte 2

Comente: