Micro Cosmo
Volte
09/10/95

< Uma FAT Muito Grande >


Faz tanto tempo que discutimos aqui a FAT, que nem sei se vocês se lembram. De qualquer forma, refrescando a memória, a FAT é uma tabela que o sistema operacional grava no próprio disco, que contém informações sobre onde encontrar os arquivos. Ou seja: que setores, de que trilhas, são ocupados por que arquivos.

Em um disquete, a coisa fica fácil. Como, seja lá qual for o tamanho do disco, um setor tem sempre 512 bytes, em um disquete de 3,5” e alta densidade (ou “disco de 1,44Mb”) cabem 2880 setores. Portanto, não há grande dificuldades para fazer uma tabela com 2880 entradas.

Agora, vamos pensar um pouco mais alto e largo. Imaginem um disco rígido. Nem vamos apelar para um disco rígido gigantesco como os que estão aparecendo recentemente: fiquemos em um disco rígido de, digamos, 320Mb, um disco relativamente modesto para os padrões atuais. Quantos setores ele tem?

O cálculo é fácil, mas não elementar. Vejamos: como você sabe, um Mb não corresponde a mil K, mas a 1024K. E um K também não corresponde a mil bytes, mas a 1024 bytes (nós já dissemos porque, mas em benefício dos que perderam a coluna em que foi dada a explicação, vamos repetir agora: para os computadores, a base decimal, essa de dez / cem / mil etc., não está com nada; em informática, o que se usa são números binários, o sistema numérico de base 2; e 1024 corresponde a 2 elevado à décima potência, a potência inteira de 2 mais próxima de mil). Agora basta fazer a conta: para obter um Mb, multiplica-se 1024 por 1024, que dá 1 048 576 bytes. Que, multiplicando-se por 320 para obter a capacidade do disco e dividindo-se o resultado pelo tamanho da cada setor (512bytes), dá o número de setores do disco: 655 360.

Agora, vamos pensar mais um pouco: se a FAT desse disco indicasse cada setor que corresponde a cada arquivo, ela teria que conter tantas entradas quantos são os setores (pense um pouco e logo descobrirá porque). Ou seja, teria que ter 655 360 entradas, ou números, cada número correspondendo a um setor. E de quantos algarismos seriam esses números? Bem, antes de responder, não se esqueça que estamos falando de algarismos no sistema binário, ou seja, de bits. E a quantidade que em decimal é expressa pelo número “655 360” precisa de vinte bits (ou algarismos binários) para ser expressa na base 2. Quer dizer, se a FAT de um disco rígido de 320 Mb contivesse a lista dos setores que correspondem a cada arquivo, somente ela, a FAT, teria que ocupar 20 x 655 360 bits, ou seja: 1 638 400 bytes. Portanto, a FAT de um disco desses, que nem é muito grande, se estenderia por mais de um mega e meio e, sozinha, ocuparia 3 200 setores. Uma tabela e tanto.

Tudo bem, é uma tabela grande, mas afinal computadores são afeitos a grandes quantidades e conseguem trabalhar com números enormes em um piscar de olhos.

Mas um momento: olhos podem piscar mais depressa ou mais devagar. Por exemplo: quando falamos em quantidades que estão armazenadas na memória RAM, cuja consulta se faz acionando circuitos onde elétrons trafegam à velocidade da luz, a rapidez é de fato extraordinária. E nesse caso um piscar de olhos é realmente imperceptível. Já quando falamos em quantidades armazenadas em disco, aí a coisa é diferente. Porque para consultar dados no disco o computador já não mais precisa acionar apenas circuitos elétricos, mas sim dispositivos mecânicos: é preciso mover a cabeça de leitura / gravação para cima da trilha e esperar que o setor que contém o dado passe sob ela. E esses movimentos, que para nós parecem rápidos como um raio, se comparados à velocidade com que os dados trafegam nos circuitos elétricos parecem em câmara lenta. Ou seja: quando a consulta envolve leitura em disco, o piscar de olhos, proporcionalmente, parece um cochilo. E note que cada vez que o sistema operacional precisa localizar um arquivo para ler ou gravar algo nele, tem que consultar a FAT gravada no disco. E achar, dentro dela, todos os setores que correspondem a cada arquivo. Que, se o arquivo estiver fragmentado (lembra? Já falamos em fragmentação de arquivos) podem estar espalhados por todo o disco.

Em suma: se a FAT fosse capaz de identificar individualmente os setores que compõem cada arquivo, os acessos a discos rígidos de grande capacidade seriam insuportavelmente lentos. E não são.

Semana que vem veremos como esse problema foi resolvido.

B. Piropo