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