Micro Cosmo
Volte
24/04/95

< A FAT >


As informações gravadas no diretório raiz do disco não estão lá apenas para nos serem mostradas quando executamos o comando “DIR”, mas para orientação do próprio sistema operacional. Mais especificamente para permitir que o arquivo seja localizado no disco. Pois quando solicitado a ler um arquivo, o sistema operacional procura, nos setores que formam o diretório raiz do disco, por um nome de arquivo que coincida com o do arquivo solicitado. E quando encontra, consulta a entrada de diretório correspondente em busca da localização do primeiro setor do arquivo. É simples assim.

Nesse ponto uma campainha de alarme deve ter soado em sua cabeça. Simples assim como? Se você bem se lembra, semana passada dissemos que na entrada do diretório correspondente a cada arquivo somente consta a localização de seu primeiro setor. Então, se o arquivo é formado por mais de um setor, como encontrar os demais?

Bem, os demais são encontrados através de um mecanismo engenhosíssimo. Tão engenhoso que vale a pena descrevê-lo. Vamos tomar como exemplo o disco de 3,5” e alta densidade que, como sabemos, contém 2880 setores em suas duas faces de oitenta trilhas com dezoito setores cada. O sistema operacional identifica esses setores numerando-os seqüencialmente segundo uma ordem preestabelecida. Agora, imagine uma tabela com exatamente 2880 elementos, ou entradas. Fica fácil entender que cada entrada da tabela corresponde a um setor do disco. E como essa tabela será usada para localizar arquivos, chamê-mo-la de tabela de alocação de arquivos, ou FAT (de “File Alocation Table”). Um nome pouco apropriado, como você já deve ter percebido: mais correto seria tabela de localização (em vez de “alocação”) de arquivos, já que ela serve para localizar arquivos e não para alocar espaço para eles. Mas a informática é cheia de nomes pouco apropriados e é melhor começar a se acostumar com eles.

Pois muito bem. Agora, imagine que o disco ainda não contém arquivo algum. Nada. Nadinha. Em um disco assim, todas as entradas do diretório raiz estão vazias. E todas as entradas da FAT estão preenchidas com zeros para indicar que nenhum setor está ocupado. Pronto. Esse é o cenário inicial.

Agora, gravemos no disco um arquivo que ocupe, digamos, cinco setores. Sendo ele o primeiro arquivo a ser gravado no disco, ocupará os cinco primeiros setores. O sistema operacional, então, grava o arquivo no disco e preenche a primeira entrada do diretório raiz com seus dados. E o que irá ele gravar no local da entrada de diretório correspondente à localização do primeiro setor ocupado pelo arquivo? Ora, o número do primeiro setor do disco. Que é igual ao número da primeira entrada da FAT. Ou seja: a entrada do diretório raiz “aponta” para a primeira entrada da FAT.

Pois agora entra o grande macete, a idéia genial, o mecanismo mais que engenhoso que permite ao sistema operacional localizar os arquivos gastando um mínimo de recursos. Porque, encontrado o primeiro setor, os demais são achados pelas informações contidas na FAT. Que são de uma simplicidade franciscana: cada entrada da FAT contém o número do próximo setor ocupado pelo arquivo, ou seja, cada entrada da FAT “aponta” para o setor seguinte (ou para a entrada da FAT seguinte: não se esqueça que cada setor do disco corresponde a uma entrada da FAT e vice- versa). No caso do nosso arquivo, a primeira entrada da FAT (que corresponde ao primeiro setor ocupado pelo arquivo) conterá o número da segunda, que conterá o da terceira, que conterá o da quarta, que conterá o da quinta. É por isso que para encontrar todo o arquivo basta conhecer o número do primeiro setor (que consta da entrada do diretório): os dos outros quatro são achados lendo seus números na FAT.

Mas o que conterá a quinta entrada da FAT, que corresponde ao último setor ocupado pelo arquivo e, por isso, não tem mais para onde “apontar”? Ora, conterá um código indicando justamente isso: que aquele é o último setor e que o sistema pode parar de procurar mais setores, porque o arquivo termina ali. Encantadoramente simples...

Gostou da simplicidade e engenhosidade da idéia? Pois você ainda não sabe da missa a metade: o mais interessante é o que ocorre na medida que mais arquivos são gravados e removidos do disco. Quer saber o que acontece então? Basta esperar uma semana...

B. Piropo