Micro Cosmo
Volte
23/10/95

< Slack Space >


Eu não conheço nenhuma tradução decente para o português da expressão “slack space”. A palavra “space”, como sabemos todos, quer dizer “espaço” e temos conversado: não há outro sentido. Já “slack” é uma palavra rica, cheia de nuanças. Se substantivo, pode significar uma corda - ou uma roupa - frouxa. Ou calmaria, remanso. Ou ainda um pedaço de alguma coisa que pende solto. Já quando adjetivo, “slack” pode ter o sentido de relaxado, preguiçoso. Ou lerdo, lento, apático. Ou ainda calmo, tranqüilo. Ou, finalmente, algo que não é justo (no sentido de que não está apertado), que é frouxo. Portanto, o que presumo ser a melhor tradução para “slack space” é “folga” - no sentido da folga que pode haver entre uma peça e o local onde ela se encaixa, por exemplo. Em suma: o espaço que sobra entre o conteúdo e o continente.

Aqueles dentre vocês que acompanham esse pobre escriba há algum tempo conhecem minha admiração pelo XTree, especialmente em sua versão para DOS. Uma senhora ferramenta para gerenciar discos. Pois dentre as gracinhas que ele é capaz de fazer há uma que, embora particularmente interessante, é pouco conhecida porque não aparece na base da tela: a função “Statistics”, acessível premindo a tecla do sinal de interrogação (não precisa apertar Shift, basta teclar “?”). Se você usa o XTree, experimente. Aparece uma tela com dados numéricos interessantíssimos sobre o conteúdo do disco.

Por exemplo: ao acioná-la, entre outros números, o XTree mostra que em meu drive D cabem 527.138.816 bytes (quase 503 Mb, como percebem todos os que sabem que em 1 Mb há 1024K e em 1 K há 1024 bytes). Desses, 302.809.088 estão livres e 224.329.728 foram usados. Somando-se os bytes livres com os usados obtém-se exatamente a capacidade do disco, como era de esperar. Por outro lado, na mesma tela o XTree informa que nesse disco há 2.832 arquivos que, por sua vez, contêm 210.329.425 bytes. E informa ainda que o “slack space” desse disco é de 14.000.303 bytes.

Perceberam a aparente incongruência dos números? Os arquivos ocupam 210.329.425 bytes, mas os bytes usados no disco somam 224.329.728. A diferença, você já percebeu, corresponde justamente ao “slack space” de 14.000.303 bytes, quase 14 Mb, cerca de sete porcento do total usado. Uma diferença nada desprezível. Como justificar essa diferença? Porque a soma do tamanho de meus arquivos é tão menor que o espaço que eles “gastam” do disco? Como justificar tanta “folga”, tanto desperdício de espaço?

É fácil. Na mesma tela, o XTree informa que em meu disco D o tamanho da unidade de alocação de arquivos é de 8.192 bytes, já que elas se estendem por dezesseis setores de 512 bytes. Portanto, por menor que seja o tamanho efetivo de um arquivo, ele jamais “gastará” menos de 8.192 bytes do disco. Parece estranho mas é verdade. E a razão é simples: como cada entrada da FAT “aponta” para um trecho de 8.192 bytes (o tamanho da unidade de alocação) e cada arquivo tem que usar no mínimo uma entrada da FAT (a que aponta para sua primeira unidade de alocação), se eu criar um arquivo texto com um único caractere, o “tamanho” desse arquivo será de um byte. Mas como na unidade de alocação onde se acomoda esse byte nada mais poderá ser gravado, o arquivo gastará exatos 8.192 bytes de disco. Resultado: 8.191 bytes foram desperdiçados.

É verdade que esse exemplo é bastante radical. Por outro lado, há igual probabilidade de um arquivo se estender até o primeiro ou o até o último byte de uma unidade de alocação. No primeiro caso desperdiçam-se 8.191 bytes, mas no último não se desperdiça nenhum. É fato que casos assim extremos são raros. Estatisticamente, podemos admitir que o mais provável é que os arquivos “acabem” no meio de uma unidade de alocação (por exemplo: um arquivo de 20.478 bytes ocupará inteiramente duas unidades de alocação e mais a metade da terceira, desperdiçando portanto apenas 4096 bytes). Ou seja: nessas circunstâncias, cada arquivo desperdiçará a metade de uma unidade de alocação (isso permite estimar grosseiramente o “slack space”, ou seja, a folga ou total de espaço desperdiçado em um disco: basta multiplicar o número de arquivos pela metade da unidade de alocação; no caso de meu disco D, por exemplo, o slack space é de 14.000.303 bytes e a estimativa resulta em 11.599.872, uma aproximação razoável).

É claro que o slack space é fruto de uma solução de compromisso: se os arquivos fossem alocados por setores, o desperdício seria mínimo, mas os acessos a discos seriam insuportavelmente lentos. Na medida que aumenta o tamanho das unidades de alocação, reduz-se o tempo de acesso mas aumenta-se o desperdício. E, enquanto se usar a FAT, não há como fugir do problema. Mas sempre se pode minimizá-lo.

Semana passada veremos como.

B. Piropo