Copy Link
Add to Bookmark
Report

9: Tabela de Alocacao de Arquivos

eZine's profile picture
Published in 
Masters of Shadow
 · 1 year ago

Um fato q me deixou um tanto quanto curioso, foi qe com o surgimento de HD's maiores de 1Gb, a moda era se falar de Clusters, particionar o HD e coisa e tal. Algumas HPs "hackers" ate fizeram materias falando sobre, com as tabelinhas de Mb, por divisao O interessante mesmo, e que ninguem nem sequer se preocupou em saber como funcionava afundo a Tabela de Alocacao de Arquivos. Entao vamos a ela..

Antes um lembrete: Para discos de dupla face, o MS-DOS aloca setores em clusters de dois setores. O mais importante agora, e o fato de qe o MS-DOS numera os clusters comecando em 0. Assim, se temos 720 setores, o MS-DOS numera os clusters de 0 a 359. Se o MS-DOS souber o numero do cluster, podera calcular o numero dos setores. O primeiro setor de um cluster e' o numero do cluster multiplicado por 2. O segundo e simplesmente o proximo setor logico. A partir dai, ele pode calcular o numero de trilhas e o numero relativo do setor Dessa forma, o MS-DOS conseguira encontrar qualquer arquivo, desde que ele possa encontrar todos os clusters alocados a ele. Como os arquivos, podem ocupar numeros variaveis de clusters, o MS-DOS, armazena os numeros na forma de uma lista ligada. Cada no na lista e na realidade uma entrada da FAT. A entrada do diretorio para o arquivo contem o numero do primeiro cluster e a posiÁca do primeiro no A maneira pela qual o MS-DOS implementa a lista ligada e um tanto interessante: cada valor da FAT serve a duas finalidades. Ele indica nao somente um numero de cluster, mas tambem a entrada da FAT onde o MS-DOS pode localizar, o proximo numero do Cluster.

Localizando as entradas da FAT

Cada entrada da FAT, e associada a um determinado arquivo, mas a implementacao, nao e tao direta quanto possa parecer a principio. Observar q cada entrada da FAT deve ser capaz de armazenar um valor de ate 359 Discos de densidade mais alta tem mais clusters e consequentemente numeros maiores. Assim, a maior entrada FAT pode passar de 359. O problema, e qe a entrada da FAT precisa de mais de um byte, ja que um byte esta limitado ao valor maximo de 255.Se cada entrada da FAT tivesse 2 bytes, o maior seria (216) - 1, ou 65.535. Isso e facilmente suficiente para conter qq numero de cluster que precisemos. Porem, o MS-DOS usa somente 1 1/2 byte para cada entrada. Como 1 1/2 byte sao 12 bits, pode conter numeros de cluster d ate (212) -1, ou 4.095. A vantagem de se usar 12 bits em vez d 16 e que as entradas FAT sao menores. Assim, a FAT requer menor espaco, deixando mais espaco p/ os arquivos. A desvantagem e a complicacaoo de manusear unidades de 12 bits. Pq mais dificuldade ? Bem...Como cada entrada FAT ocupa 1 1/2 byte, o DOS armazena duas entradas consecutivas em 3 bytes consecutivos. Assim, dado um numero de entrada, a primeira coisa que o MS-DOS deve fazer e identificar os dois bytes correspondentes no setor FAT. Entao carrega os dois bytes, em um registrador.. Mas somente 12 dos 16 bits sao o valor real da FAT. A questao portanto e: "Quais 12 bits ?" He He He. Para complicar ainda mais, o microprocessador armazena inteiros de 2 bytes na memoria com o byte menos significativo primeiro e o mais significativo depois

Bem vamos ver agora qual a capacidade de nossos leitores..

No proximo zine eu dou a resposta :P

KosMOS

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT