You are on page 1of 5

Los sistemas FAT y muchos otros, utilizan un mtodo de grabacin que agrupa varios sectores en una misma unidad

("Allocation unit") tambin llamada cluster, traducida al espaol como unidad de asignacin, a la que ya hemos hecho referencia 8.1.2). Esta es la menor unidad de grabacin lgica que utiliza el Sistema en la unidad, de forma que un fichero se grabar siempre utilizando un nmero entero de clusters. Todos los sistemas FAT han utilizado tamaos de cluster dependientes del tamao de la unidad. En los disquetes ha sido de 1 o 2 sectores por cluster, es decir, 512 o 1024 bytes (ver tabla 8.1.2). El primer disco duro de 10 MB del IBM PC-XT utilizaba cluster de 8 sectores.

Nota: En realidad, desde la ptica del aprovechamiento de espacio, la agrupacin en clusters no es muy buena idea. Por ejemplo, un disco formateado con una unidad de asignacin de de 8 sectores (4.096 bytes) ocupa necesariamente esta cantidad para cualquier fichero por pequeo que sea, aunque los sistemas utilizan miles de ficheros de tamao menor. Sin embargo ayuda a mantener el tamao de las FAT dentro de lmites razonables [1]. El sistema de anotacin utilizado en la FAT (inspirado en UNIX) es una estructura encadenada jerrquica donde cada eslabn apunta al siguiente. Para entenderla del todo hacen falta un par de conceptos y vocabulario previos. El primero es que en la tabla existe un campo o celda (de 12, 16 o 32 bytes) por cada cluster del volumen [5]. Su contenido lo llamaremos entrada. El campo n de la FAT representa el cluster n del volumen -no confundir la "entrada" (un valor de 12, 16 o 32 bytes), con el contenido del cluster al que representa (un campo de 512 bytes como mnimo). El segundo se refiere a qu son los directorios y como est organizada su estructura. En realidad los directorios son un tipo especial de fichero, que en lugar de datos de usuario, contienen metadatos (punteros a otros ficheros). En cualquier caso, como cualquier otro fichero, sus "datos" estn en el rea de datos del disco, y a cada sector de informacin le corresponde una entrada en la FAT (dedicaremos todo un captulo a explicar la estructura interna de estos ficheros especiales 8.1.2d).

El nmero del primer cluster de cada fichero, junto con otros datos del mismo, se anota como "entrada" en "su" directorio. A su vez, la entrada correspondiente a dicho primer cluster, contiene la direccin (nmero) de segundo cluster del fichero, cuya entrada contiene la direccin del tercero, etc. El proceso se repite sucesivamente con todos los cluster del fichero hasta llegar al ltimo, cuya entrada no puede contener el nmero del siguiente, porque no existe, de forma que contiene una marca especial EOF ("End of file") de final de fichero. Las entradas de clusters que no corresponden a ninguna cadena, sin utilizar o "liberados", tienen un contenido especial (cero). Y las que corresponden a clusters con bytes malos o reservados, tambin contienen valores de significado especial. Esta organizacin ha originado que en algunos manuales se afirme que en las FAT existen dos tipos de entradas: de fichero y de cluster. En cuanto a los ltimos, cada cluster tiene una entrada en la FAT que seala su estado, adems de un sistema que permite que el SO pueda saber que zona del disco est ocupada y cual libre; as como un sistema de referencias en cadena que permite conocer qu clusters componen un determinado fichero.

El sistema para recuperar (leer) un fichero es algo parecido a sacar cerezas de un cesto. An suponiendo que la tabla FAT haya sido leda en memoria, como el nmero del primer eslabn de la cadena (el primer cluster de un fichero) se obtiene del directorio, el acceso a este primer bloque de datos requiere al menos, dos accesos: al directorio que lo contiene, y a los datos del fichero en s. Si en lugar del directorio raz, el fichero est en el interior de una cadena de subdirectorios, cada nivel de anidamiento puede requerir un acceso adicional a disco. En cambio los bloques sucesivos se leern directamente siguiendo la cadena de direcciones sealada en la FAT. Nota: Como puede suponerse, el sistema presenta algunos inconvenientes. Por ejemplo, si se rompe la cadena en un punto, el resto del fichero se pierde. Si el punto de ruptura es un directorio, entonces se pierde todo su contenido. Estos y otros errores de las FAT sern comentados ms adelante al tratar de la estructura de directorios ( 8.1.2d)

Las dos primeras entrada de la FAT (los tres primeros bytes en FAT12) tienen un significado especial, de forma que la anotacin de clusters se realiza a partir del tercero (a partir del nmero 2 si como es costumbre, empezamos a contar por cero). Como veremos a continuacin, al tratar de la FAT12, lar razn es de tipo histrico. Recordando que existen distintas variedades del sistema: FAT12; FAT16 y FAT32, que utilizan distinto nmero de bits para apuntar los nmeros de cluster. Se deduce que dependiendo del espacio de anotacin disponible, un sistema FAT puede direccionar un mximo determinado de clusters. Los valores son: 4.096 (212) para FAT-12; 65.536 para la FAT-16 (216) y 4.294.967.296 (232) para FAT-32. Sin embargo no todas las posiciones estn disponibles. Hay que restar algunas los nmeros anteriores, que como hemos adelantado, se utilizan para indicar situaciones especiales tales como: El cluster est desocupado o "liberado" (no est siendo utilizado por ningn fichero) Cluster malo (no debe utilizarse) ltimo cluster del fichero ("End Of File") Adems FAT-32 no utiliza todos los bits (4 estn reservados). Cualquier valor que no corresponda con alguno de los significados especiales debe interpretarse como el prximo nmero FAT en la cadena del fichero que se examina. 2.2 FAT-12 En realidad los primeros PCs, que solo disponan de un disquete de 160 KB y una cara, gobernados por el IBM-DOS 1.0, no utilizaban el sistema FAT, sino uno derivado de CP/M Gary Kildall. Sin embargo, las exigencias de almacenamiento se dispararon enseguida. El primer disco duro instalado en el XT tena capacidad para 10 MB y el del AT era ya de 20 MB. Como el sistema de ficheros utilizado por CP/M era ineficiente y complicado (el disquete solo poda contener un directorio con 64 entradas), haba que buscar en otra direccin. El sistema FAT-12, inspirado en el sistema de ficheros de Unix [4], que utiliza 12 bits para el ndice de clusters, apareci a partir deMS-DOS 1.1 hasta 2.x. Aunque tambin se utiliz en

versiones 3.00 y posteriores si el dispositivo tena menos de 4087 clusters. A partir de esta cantidad se usa la versin FAT de 16 bits. Cada entrada de la tabla corresponde directamente con un cluster utilizable en el volumen. En este sistema cada nmero de cluster se almacena en la FAT en forma de tres dgitos hexadecimales, en el rango 000h/FFFh (0/4095). Como estas cantidades necesitan 12 bits, para aprovechar espacio, las entradas se agrupan por parejas que ocupan tres bytes, de los que cada entrada utiliza 1+. Los valores posibles son: 002-FEFh Cluster en uso 000h 001h Cluster est desocupado o liberado (no es utilizado por ningn fichero) No utilizado (el primer cluster de datos es el 2).

FF0-FF6h Reservados FF7h Cluster malo (no debe utilizarse)

FF8-FFFh ltimo cluster del fichero ("End Of File") Recordar que en este sistema, los dos primeros campos de la tabla (3 bytes), que corresponden a las entradas FAT 0 y 1, no se utilizan para almacenar direcciones de cluster. El primero byte contiene una copia del "Media descriptor" ( 8.1.2c2). Los dos siguientes contienen 0FFh. A su vez los clusters de datos comienzan en el nmero 2 (el 0 y el 1 no se utilizan). Nota: La razn es de tipo histrico. El sistema de ficheros del DOS 1.0 no tiene bloque de parmetros BIOS (BPB 8.1.2c2), y la distincin entre los disquetes de 5.25" de simple o doble cara (320/640 KB) deba indicarse en la FAT. A partir del DOS 2.0 la FAT incluy el BPB con el "Media descriptor". Ms informacin en:

How to Interpret 12-Bit FATs

http://support.microsoft.com/

2.3 FAT-16 En este sistema, utilizado a partir de MS-DOS 3.0, cada cluster est representado en la FAT por un nmero de 16 bits en forma de 4 dgitos hexadecimales (0000h/FFFFh), con lo que el disco puede tener un mximo de 216 = 65.536 unidades de asignacin. Los valores posibles para las entradas de la tabla son: 0002-FFEFh Cluster en uso. El valor seala el nmero del siguiente cluster del fichero 0000h Cluster libre

0001h

No utilizado (el primer cluster de datos es el 2).

FFF0-FFF6h Reservados FFF7h Cluster malo

FFF8-FFFFh ltimo cluster del fichero ("End Of File") El modelo resultaba muy adecuado para discos pequeos, pues con clusters de solo 256 bytes se pueden conseguir capacidades de 256 x 65.536 = 16 MB, o de 33 MB con clusters de 512 bytes. Sin embargo, para discos de 2 GB el cluster tena que ser de 32 KB. Tamao que se considera el lmite superior razonable para cada unidad de asignacin. Est sistema tiene dos inconvenientes: en primer lugar el tamao mximo de 2 GB, cuando actualmente ya es comn ver discos duros de 8 GB [3]. El segundo es el espacio desperdiciado. Cada fichero que se almacena en el disco ocupa los clusters completos que necesita, por lo que si el fichero tiene un tamao de 2 KB, ocupar un cluster de 32 KB, desperdiciando 30 KB. Si es de 66 KB, ocupar tres clusters = 96 KB, desperdiciando 31 KB. Si se tienen en cuenta que en una particin de 2 GB caben miles de ficheros, y estimamos que se desperdicia una media de 16 KB por fichero, si el disco tiene unos 8.500 archivos estaremos desperdiciando 132 MB. El problema se agrava si consideramos que cuantos ms ficheros pequeos tengamos, ms espacio se desperdicia y que por ejemplo, los sistemas Windows utilizan cientos de pequeos ficheros. 2.4 FAT-32 Fue introducido con Windows 95b y con el SO DOS v.7.x que vena incluido con l. La razn de su lanzamiento fue que el tamao de los discos creca sin parar y que, como se ha sealado, el FAT-16 tradicional no permita hacer particiones de mas de 2 GB, so pena de utilizar clusters muy grandes, lo que a su vez era contraproducente. Microsoft denomin al nuevo sistema Virtual FAT (VFAT) e incorpor algunas mejoras, como la posibilidad de utilizacin de nombres largos para los ficheros y directorios. Pero VFAT es un sistema de ficheros bsicamente igual que los FAT anteriores, la mayora de las implementaciones se basan mas en "como" se usa el sistema que en cambios estructurales. Aunque nominalmente utiliza una FAT de 32 bit, en realidad los 4 superiores estn reservados. Los 28 restantes permiten direccionar 228 = 268.435.456 clusters. Lo que se traduce en que an utilizando el tamao mnimo de cluster, que es de 8 sectores (4.096 Bytes), se pueden tener particiones de hasta 1.07 TB (1.073 1012 bytes), aunque en realidad, FAT-32 utiliza clusters de 4096 a 32768 bytes (8/64 sectores) Frente a FAT-16 posee la ventaja de no utilizar un tamao fijo para la tabla de entradas, lo que permite introducir cualquier nmero de sub directorios y archivos en el directorio raz. La contrapartida es que se aprecia una considerable prdida de prestaciones frente a la FAT 16. En concreto aparecen prdidas de del orden de un 5% de prestaciones al convertir un disco de FAT 16 a FAT 32, notndose ms en los ficheros ms pequeos. Hay que resaltar que

la versin OSR2 (Windows95 OEM Service Release 2) es, en general, ms lenta de acceso a disco que la anterior. En principio las particiones FAT-32 solo eran accesibles desde Windows 95b y desde Dos 7.x. Ningn otro sistema operativo poda leerlas, siquiera Windows NT. Las utilidades de disco anteriores no servan para esta, as que Windows 95b traa sus propias versiones de FDisk, Format, ScanDisc y Defrag que trabajan con las particiones FAT 32. Con Windows98-2E, Microsoft introdujo una nueva versin de su sistema FAT-32 con las siguientes mejoras respecto a las implementaciones anteriores:

Admite unidades de hasta 2 TB (Terabytes) de tamao. Utiliza clsteres menores que las versiones FAT anteriores. Es decir, clsteres de 4 KB para unidades de hasta 8 GB de tamao, lo que da como resultado un uso de entre el 10 y el 15 ms eficiente del espacio de disco con respecto a las grandes unidades FAT16. Puede reubicar el directorio raz y utilizar la copia de seguridad de la FAT en lugar de la copia predeterminada. Adems, se ha ampliado el registro de inicio de las unidades FAT32 para incluir una copia de seguridad de las estructuras de datos crticas. Esto significa que las unidades FAT32 son menos susceptibles a un nico punto de fallo que los volmenes FAT16 existentes. El directorio raz de una unidad FAT32 es ahora una cadena normal de clsteres, por lo que puede ubicarse en cualquier lugar de la unidad. Por ello, ya no existen las limitaciones anteriores sobre el nmero de entradas del directorio raz.

Los Sistemas Operativos de Microsoft distinguen el tipo de FAT (12-16-32) utilizado en un volumen mediante la siguiente regla (los valores mencionados pueden obtenerse o deducirse directamente del BIOS Parameter Block del sector de carga del volumen - Se obtiene el nmero total de sectores en el volumen - Se le resta el espacio de sectores reservados - Se le resta el espacio ocupado por las FAT - Se le resta el espacio ocupado por el directorio raz. - El total anterior se divide por el nmero de sectores en un cluster redondeando hacia abajo. El resultado R es el nmero de clusters en el rea de datos.

8.1.2c2):

R < 4085

------> FAT-12

R < 65525 ------> FAT-16 R > = 65525 ------> FAT-

You might also like