Micro Cosmo
Volte
30/10/95

< Reduzindo o Desperdício >


Como vimos, quando se usa o sistema de arquivos baseado na FAT, ou tabela de alocação de arquivos, é impossível evitar algum desperdício de espaço em disco. A ocorrência desse espaço perdido, ou “slack space”, deve-se ao fato de que os arquivos usam unidades de alocação de arquivos inteiras e mesmo que ela não venha a ser inteiramente ocupada pelo arquivo, nada mais pode ser ali gravado.

Vimos ainda que, estatisticamente, a cada arquivo existente no disco deve corresponder aproximadamente meia unidade de alocação de arquivos perdida. Portanto, quanto maior a unidade de alocação de arquivos, mais espaço se perde no disco. O que nos leva à primeira sugestão para minimizar o desperdício: manter as unidades de alocação de arquivos tão pequenas quanto possível.

Ora, dirá você, mas se o tamanho da unidade de alocação de arquivos depende da capacidade do disco, como fazer para mantê-la pequena? Fácil, respondo eu: subdividindo o disco rígido em partições. Porque você não deve se esquecer que o sistema operacional trata partições como discos independentes. Por exemplo: um disco rígido de 420 Mb usa unidades de alocação de 8K. Mas se esse mesmo disco for subdividido em duas partições de 210Mb, ambas se comportarão como discos independentes e usarão unidades de alocação de 4K, reduzindo pela metade o espaço perdido. Note que eu não estou recomendando essa técnica, apenas lembrando que ela é possível. Se vale a pena usá-la ou não, depende das circunstâncias e da importância que se dê ao slack space. Muita gente, inclusive eu mesmo, prefere desperdiçar algum espaço a ter de lidar com um mundo de pequenas partições.

Outro método recomendado para reduzir o desperdício é evitar o acúmulo de pequenos arquivos. Porque quanto menor é o arquivo maior o desperdício, já que nada mais pode ser gravado na unidade de alocação que ele ocupa. Um exemplo típico são as coleções de ícones. Conheço gente que mantém em seu HD literalmente milhares de arquivos contendo ícones bonitinhos para usar em Windows. Eu mesmo acho que ícones diferentes e sugestivos ajudam a amenizar a rotina, mas um arquivo típico desses usa 766 bytes. E em um disco rígido cuja unidade de alocação ocupa 8K, cada um corresponde a uma perda de 7426 bytes. Quem mantiver no HD uma coleção de, digamos, mil desses ícones - o que não é raro - perde só com ela mais de 7Mb de espaço em disco. Solução? Simples: comprima os arquivos de seus milhares de ícones e armazene-os em um único arquivo “zipado”. Precisa escolher um deles para um novo objeto? Pois vá para um diretório temporário, use o PKUnzip ou similar para descomprimir os arquivos, escolha o ícone desejado e apague os arquivos dos demais (deixando no disco o arquivo comprimido, é claro). Essa técnica de manter arquivos comprimidos e só descomprimi-los na hora de usar é trabalhosa, portanto não deve ser empregada para arquivos de uso freqüente. Mas é infernalmente eficaz para economizar espaço em disco.

E por falar em compressão de arquivos, uma forma de fugir completamente do slack space é utilizar os compressores de disco em tempo real como o Stacker ou DoubleSpace. Esses programas adotam uma técnica especial para gerenciar os arquivos do disco rígido (que, simplificadamente, consiste em agrupar todos os arquivos comprimidos em um único “arquivão” que aparece como um novo “drive”) e para eles o conceito de slack space simplesmente não faz sentido. É claro que ninguém irá usar um bicho desses somente para fugir do slack space: em geral, quando se apela para um compressor de discos em tempo real é porque a situação de falta de espaço já está crítica e o slack space é apenas um detalhe. Mas, de qualquer forma, fica o lembrete: se seu disco está comprimido, esqueça o slack space.

Mas se nada disso lhe agrada e você quer, definitivamente, se ver livre do slack space de uma vez por todas, tudo bem: tem jeito. Mas você vai ter que mudar de sistema operacional. Porque, como vimos, o desperdício deve-se exclusivamente à uma limitação do sistema baseado na FAT. Que desaparece se você usar outro sistema de arquivos, como por exemplo o NTSF de Windows NT ou o HPFS do OS/2 (não, lamentavelmente Windows 95 não serve: também ele, como o DOS, só “enxerga” a FAT). Esses sistemas conseguem acelerar o processo de busca de arquivos no disco usando técnicas modernas e por isso podem se dar ao luxo de subdividir os arquivos em setores, sem a necessidade de grupá-los em unidades de alocação (outra forma de encarar o problema é dizer que para esses sistemas de arquivos, a unidade de alocação é o próprio setor, o que dá no mesmo). É claro que mesmo assim ainda haverá alguma perda, pois nem sempre o último setor será totalmente ocupado pelo arquivo e será impossível gravar outra coisa nele. Mas essas perdas são mínimas e perfeitamente aceitáveis.

Pronto. Com a coluna de hoje esgotamos o assunto “discos”. E já não era sem tempo.

Eu, pelo menos, não agüentava mais de vontade de mudar de assunto...

B. Piropo