Sistema de archivos FAT

Informática. Hardware. Disco duro. Clusters. Almacenamiento. Unix. Ventajas y desventajas

  • Enviado por: Fco Javier Garcia Fonseca
  • Idioma: castellano
  • País: España España
  • 24 páginas

publicidad
cursos destacados
MegaCurso PHP
MegaCurso PHP
A vuestra disposición más de 80 vídeos con aproximadamente 5 horas y cuarto de durada para que me...
Ver más información

Apps de iPhone y Android con HTML5 para principiantes
Apps de iPhone y Android con HTML5 para principiantes
A todos se nos ocurren ideas de apps y luego, al poco tiempo vemos que otra persona las desarrolla. Que no te pase de...
Ver más información


INTRODUCCIÓN A LOS SISTEMAS DE ARCHIVOS

La parte más visible de un sistema operativo es el sistema de archivos. La mayoría de los programas leen o escriben cuando menos un archivo y los usuarios siempre tienen conocimiento de la existencia de archivos y sus propiedades. Para muchas personas, la comodidad y utilidad del sistema operativo dependen principalmente de la interfaz, estructura y confiabilidad del sistema de archivos.

Estructuras de un Disco Duro

Los archivos normalmente se almacenan en disco, de manera que el manejo del espacio de disco es de interés fundamental para los diseñadores de sistemas. En todo disco siempre hay que diferenciar entre su estructura física y su estructura lógica.

  • Estructura física. La estructura física es inherente al disco y se crea cuando se construye el disco en la fabrica, asignándole un numero determinado de caras, cilindros (pistas) y sectores. Las caras o cabezas (heads) son los lados del disco en los que se puede información. En un CD-ROM se lee una cara, en un disquete hay dos caras y en un disco duro puede haber varias, por ejemplo, 16 caras, porque están formados por varios platos de disco (cada uno con su correspondiente cabeza de lectura/escritura). A su vez, cada cara de un disco está dividida en círculos concéntricos llamados pistas (tracks) en los disquetes y cilindros (cylinders) en los discos duros. Finalmente, cada pista o cilindro se divide en segmentos llamados sectores y el mayor o menor numero de sectores por pista define la densidad del disco. Un sector es la unidad mínima de información que puede tratar la estructura física del disco y, normalmente, tiene espacio para almacenar 512 bytes de datos.

  • Estructura lógica. La estructura lógica se crea cuando se formatea el disco y su función es organizar la superficie del disco para almacenar datos. La estructura lógica depende del sistema operativo que formatea el disco y, generalmente, divide el disco en un sector de arranque, una tabla de localización de archivos (FAT) y el área para los datos del usuario. El sector de arranque (boot sector) es el primer sector (512 bytes) y se encarga de comenzar el arranque del sistema operativo (o mostrar el mensaje de error “No es disco de sistema” cuando el disco no esta preparado para arrancar un sistema operativo). Se reserva un espacio para la FAT y el resto se deja para almacenar los datos del usuario (incluyendo el directorio raíz de la unidad).

Organización lógica de un disco duro

El Cluster

Clusters de un disco duro

Se ha comentado que el sector es la unidad mínima de información desde el punto de vista de la estructura física, pero el sistema operativo, ya sea DOS o Windows, no entiende de sectores y sólo trabaja con clusters. Un cluster no es más que un conjunto de varios sectores contiguos del disco (y recuerde que un sector es un bloque de 512 bytes), por ejemplo, ocho sectores contiguos. El número de sectores contiguos que tiene un cluster, es decir, el tamaño del cluster, varía en cada unidad de disco y depende del tamaño de la unidad (cuanto más grande sea la unidad, más grande será el tamaño del cluster), pero siempre es potencia de 2 (1, 2, 4, 8, etc). Cuando se graba un archivo en un disco, el sistema operativo no lo graba en el sector xx de la pista xx de la cara xx, sino en el cluster número xx. Como mínimo, cualquier archivo ocupa un cluster. En definitiva, el cluster es la unidad mínima de información desde el punto de vista de la estructura lógica del disco, que es la que cuenta para el sistema operativo.

El Directorio Raíz

La tercera zona del disco que se crea en la estructura lógica es el directorio raíz, que ocupa un numero fijo de sectores y se sitúa detrás del último sector de la FAT. ¿Qué se almacena en los sectores del directorio raíz? Pues una entrada de 32 bytes por cada elemento que posee el directorio raíz. Estos 32 bytes contienen algunos de los datos que se muestran al ejecutar la orden DIR (nombre, extensión, tamaño, fecha y hora), así como el estado de los atributos del elemento y el cluster de inicio de dicho elemento. Sin embargo, antes de continuar explicando qué es la zona del directorio raíz conviene definir con precisión el concepto de directorio.

Para el DOS, un directorio es simplemente un fichero especial que tiene activado el atributo de directorio y cuyo contenido son las entradas (los 32 bytes) correspondientes a cada elemento que se almacena en dicho directorio. Por ejemplo, si el directorio C:\TEXTOS posee los ficheros FICH1.TXT y FICH2.TXT, esto quiere decir que en el directorio raíz existe un “fichero” llamado TEXTOS cuyo contenido son 64 bytes (32 bytes para la entrada de directorio de FICH1.TXT y 32 bytes para la entrada de FICH2.TXT).

Estrategias de almacenamiento

Son posibles dos estrategias generales para almacenar un archivo de n bytes:

  • Se distribuyen n bytes consecutivos de espacio del disco o bien el archivo se divide en varios bloques (no necesariamente) contiguos. Una vez que se ha decidido almacenar archivos en bloques de tamaño fijo, surge la pregunta de cuán grande debe ser el bloque. Dada la forma en que se organizan los discos, el sector, la pista y el cilindro son candidatos claros para la unidad de asignación. Si un archivo consta de una sucesión de bloques, el sistema de archivo debe contar con alguna manera de llevar el control de los bloques de cada archivo. La forma más evidente suele no ser viable porque los archivos pueden crecer. De hecho, fue precisamente éste problema el que nos llevó a dividir los archivos en bloques en primer término.

  • Un método que resulta adecuado consiste en almacenar los bloques de un archivo como una lista enlazada. Cada bloque del disco de 1024 bytes contiene 1022 bytes de datos y un apuntador de 2 bytes al siguiente bloque de la cadena. Sin embargo, éste método tiene dos desventajas: Primero, el número de bytes de datos en un bloque ya no es una potencia de dos, lo que con frecuencia es una molestia. Segundo y más grave, el acceso al azar es costoso de implementar. Si un programa hace la localización del byte 32786 y después inicia la lectura, el sistema operativo tiene que hallar su camino a través de 32768/1022 o 33 bloques para hallar los datos que se necesitan. Tener que leer 33 bloques para hacer la localización es ineficiente. Pese a ello, la idea de representar un archivo como una lista enlazada puede salvarse si se conservan los apuntadores en la memoria.

  • Tipos de sistemas de archivos

    Cada sistema operativo utiliza su propio sistema de archivos (file system), que indica cómo se almacenan los archivos en el disco. Los tipos de sistemas de archivos más utilizados son los siguientes:

    • FAT16. La FAT original del sistema operativo MS-DOS y que, normalmente, soportan todos los sistemas operativos. Se llama FAT16 porque utiliza 16 bits para cada elemento de la FAT.

    • VFAT. La FAT incluida en Windows 95. Es igual que la FAT16, pero con soporte para nombres largos de archivo y funcionamiento en modo protegido. Normalmente, no se suele realizar distinción entre FAT16 y VFAT, al revés, para evitar confusiones, es recomendable que se olvide la VFAT y piense que la FAT16 es la utilizada tanto en MS-DOS como en Windows 95.

    • FAT32. La FAT especifica de Windows (aunque ya existía en Windows 95 OSR2, la versión de Windows 95 que se vendía con ordenadores nuevos desde 1997). Como su nombre indica, utiliza 32 bits para cada elemento.

    • NTFS. (NT File System). El sistema de archivos de Windows NT, que incluye características de protección a nivel archivo.

    • HPFS. (High Performance File System. El sistema de archivos del sistema operativo OS/2, que también posee características avanzadas de seguridad y protección.

    • NODO-I. El sistema de archivos del sistema operativo UNIX, que incluye características de seguridad, protección y enlace de archivos.

    • CDFS. (CD-ROM File System). El sistema de archivos utilizados en las unidades CD-ROM para ser reconocidas como unidades lógicas dentro de un ordenador.

    • UDF. (Universal Disk File System). El sistema de archivos utilizado en los discos DVD-Video (sólo permite lectura, no escritura).

    Un Sistema de listas enlazadas. Nodo-i

    El meollo del problema de la FAT es que los punteros de todos los ficheros del disco están mezclados de forma aleatoria en al misma tabla. Esto quiere decir que puede hacer falta la FAT completa, aunque sólo se haya abierto un fichero. Un método mejor sería tener listas de bloques de los diferentes ficheros en sitios distintos, que es lo que hace UNIX.

    Cada fichero UNIX tiene una pequeña tabla asociada (en disco), llamada nodo-i, como muestra la figura, que contiene información de protección y de facturación. Todas las direcciones de los bloques se guardan en el nodo-i, lo que facilita su localización.

    Estructura de un nodo-i

    Cuando un fichero tiene más de 10 bloques de disco, se adquiere un bloque libre y se pone el puntero indirecto simple apuntándole. Este bloque se usa para contener punteros a bloques de disco. Para bloques de 1K y direcciones de disco de 32 bits, el bloque indirecto simple puede contener hasta 256 direcciones de disco. Este método es suficiente para ficheros de hasta 266 bloques (10 en el nodo-i y 256 en el bloque indirecto simple).

    LA FAT

    Los archivos se guardan en clusters, pero esos clusters no tienen por qué ser contiguos (consecutivos). Imagine un disco duro cuyo tamaño son 10 MB y en el que se copian diez archivos de 1 MB cada uno, llenando todo el disco. Suponga ahora que borra los archivos colocados en la posición 1, 3, 5, 7 y 9; es decir, el disco duro tendría 5 MB ocupados y 5 MB libres. Pues bien, si se guardaran los archivos en clusters contiguos, no seria posible copiar en ese disco un archivo de 1.1 MB, pues el sistema operativo utiliza los clusters libres de todo el disco.

    Ahora bien, ¿cómo sabe el sistema operativo cuál es la cadena de clusters de un archivo, por ejemplo, cuál es el primer cluster de un archivo y en qué cluster continúa? El primer cluster de un archivo aparece en la entrada de directorio del archivo, junto con otros datos como el nombre, la extensión, el tamaño, la fecha de creación y los atributos del archivo. Y para saber cuáles son los clusters siguientes de un archivo se utiliza la FAT (File Allocation Table; tabla de localización de archivos). La FAT es una tabla formada por elementos que se corresponden con cada uno de los clusters del disco. Es decir, el elemento situado en la posición 40 de la FAT controla el cluster 40 del disco (que a su ve corresponderá a unos determinados sectores del disco). Cada elemento de la FAT puede tener uno de los tres valores siguientes:

    • Una marca especial (el valor 0) para indicar que se trata de un cluster libre; es decir, que los sectores gobernados por ese cluster no tiene datos.

    • Una marca especial para indicar que se trata del último cluster de un archivo; es decir, que los sectores de ese cluster almacenan la parte final del archivo.

    • Cualquier otro valor numérico se interpreta como el cluster siguiente del archivo. Por ejemplo, si el elemento 135 de la FAT tiene el valor 227, quiere decir que detrás de los sectores del cluster 135, el archivo continua con los sectores del cluster 227.

    En definitiva, la FAT es una tabla que permite al sistema operativo utilizar clusters no consecutivos para almacenar los archivos. Si por cualquier motivo se corrompe la FAT posiblemente perderá gran parte de sus datos, ya que el sistema operativo no sabrá dónde continua un archivo y donde termina. Es tal la importancia de la FAT, que normalmente se guardan 2 copias de la FAT para recuperar los datos en caso de que se corrompa una de las copias.

    Organización conceptual

    Existe una correspondencia uno a uno entre las entradas de la FAT y los bloques del disco, excepto por las primeras dos entradas de la FAT, que codifican la clase del disco. En este ejemplo, mostramos tres archivos A, B y C. El archivo A comienza en el bloque 6. El dato de la FAT para 6 es 8, lo que significa que el segundo bloque del archivo es el bloque 8. La entrada de la FAT para 8 es 4, lo que indica que el siguiente bloque es 4. El dato de la FAT para 4 es 2. Por ultimo, el dato para 2 es un código especial que indica el fin del archivo. Así, con el número del primer bloque de un archivo, es posible localizar todos los demás bloques, al seguir la cadena a través de la FAT. El dato del directorio para cada archivo contiene el bloque inicial y la FAT proporciona el resto de la cadena.

    Tabla de distribución de archivos

    FAT 16

    La FAT 16 es el sistema de archivos de MS-DOS y Windows 95 y se caracteriza por utilizar 16 bits para los números de cluster.

    La FAT 16 tiene dos inconvenientes muy importantes, casi fundamentales. En primer lugar, se utilizan unos clusters demasiado grandes y, en segundo lugar, no permite crear unidades superiores a 2 GB.

    Clusters muy grandes

    Las unidades con FAT 16 utilizan unos clusters que tienen un tamaño excesivamente grande, lo que supone un desperdicio importante del espacio libre en el disco duro. La tabla siguiente muestra el tamaño del cluster según el tamaño de la unidad del disco y advierta que las unidades de más de 512 MB, algo muy habitual hoy en día, tienen clusters de 16 KB (incluso 32 KB si tiene más de 1 GB). Puede comprobar el tamaño del cluster en sus unidades de disco ejecutando el programa ScanDisk (o la orden CHKDSK del DOS), pues al finalizar aparece una ventana de información donde se indican los bytes utilizados en cada cluster (en la terminología de Microsoft no se habla de clusters, traduciéndose como unidad de asignación; por ejemplo, la frase “8.192 bytes en cada unidad de asignación” indica que el tamaño del cluster es 8 KB).

    Tamaño unidad FAT 16

    Tamaño del cluster

    Menos de 128 MB

    2 KB

    128 a 255 MB

    4 KB

    256 MB a 511 MB

    8 KB

    512 MB a 1 GB

    16 KB

    1 GB a 2 GB

    32 KB

    Suponga que tiene una unidad de disco duro que utiliza clusters de 16 KB. Si en ese disco duro crea un archivo de texto que solo tiene las letras “HOLA”, ese archivo de texto tendrá un tamaño de 4 bytes, pero en el disco duro ocupará un cluster entero, es decir, 16 KB, lo que supone una pérdida de espacio de más de 15 KB. Y no piense que se trata tan sólo de los archivos pequeños, sino que la pérdida se produce en todos los archivos, aunque en unos más y en otros menos; por ejemplo, si en su disco duro guarda un archivo de 161 KB, se utilizará once cluster(total 176 KB), produciéndose una pérdida de 15 KB de espacio inutilizado. Dependiendo de los archivos que usted guarde la pérdida de espacio será mayor o menor, pero piense en las cifras siguientes: imagine una unidad de 2 GB que posee 20.000 archivos (lo cual es muy habitual); puesto que el tamaño del cluster en una unidad de 2 GB es 32 KB, la pérdida media por archivo son 16 KB, que multiplicados por 20.000 archivos arroja una pérdida media de espacio total de 320 MB, cantidad bastante importante.

    Para saber cuál es la pérdida real de espacio de sus unidades de disco puede consultar las Propiedades de un archivo (o una carpeta), que muestran en el campo Tamaño tanto el tamaño real del archivo como el tamaño que se gasta en los clusters del disco. Por ejemplo, la figura siguiente muestra una carpeta con 46 archivos cuyo tamaño real es de 100 KB pero que ocupa en un disco un total de 184 KB, por lo cual hay una perdida de espacio de uno 84 KB. Por supuesto, si se quiere conocer la pérdida de espacio de toda la unidad de disco duro se puede seleccionar todos los elementos de la carpeta raíz de la unidad, abrir el menú contextual de cualquiera de los elementos seleccionados y elegir el comando Propiedades.

    No permite crear unidades superiores a 2 GB

    La FAT 16 no permite crear unidades de disco superiores a 2 GB (superiores a 2047 MB). Esto no quiere decir que los sistemas operativos que trabajen con FAT 16 sean incapaces de gestionar discos duros superiores a 2 GB, sino que la unidad de disco lógica (no el disco duro físico) no puede ser mayor de 2 GB. El disco se puede dividir en varias particiones, creando de esta forma diferentes unidades lógicas. Pues bien, si quiere que alguna de esas unidades tenga más de 2 GB, no puede usar FAT 16 y tiene que optar por FAT 32. ¿Cuál es la razón de este límite de la FAT 16? Muy sencillo. Usted ya sabe que las unidades FAT 16 utilizan una tabla de elementos con números de 16 bits y que cada elemento controla un cluster de la unidad, lo que permite un máximo de 216 (65.536) clusters en un disco FAT 16. También sabe que las unidades de más de 1 GB utilizan un cluster de 32 KB. Por tanto, si hay 65.536 clusters de 32 KB cada uno, el tamaño máximo es 2.097.152 KB, que corresponde a 2047 MB (2 GB).

    FAT 32

    La FAT 32 es una tabla de localización de archivos que utiliza 32 bitas para los numero de cluster. Como se puede imaginar, la FAT 32 resuelve los problemas de la FAT 16, aunque sea a costa de pagar el precio de cierta incompatibilidad. Las principales características de la FAT 32 son las siguientes:

    • Unidades de más de 2 GB. Si se utiliza FAT 32 puede crear unidades de disco con más de 2 GB, lo que es interesante en muchos casos, sobre todo ahora que todos los discos duros que se venden superan con creces ese tamaño.

    • Clusters más pequeños. La FAT 32 utiliza clusters mucho más pequeños que la FAT 16, lo que evita los problemas de pérdida de espacio mencionados anteriormente. Por ejemplo, las unidades hasta 8 GB usan clusters de 4 KB. La tabla siguiente recoge el tamaño del cluster en función del tamaño de la unidad.

    Tamaño unidad FAT 32

    Tamaño del cluster

    513 MB a 8 GB

    4 KB

    8 GB a 16 GB

    8 KB

    16 GB a 32 GB

    16 KB

    Más de 32 GB

    32 KB

    • Velocidad. La Fat 32 ofrece la misma velocidad que FAT 16 al trabajar desde Windows. Sin embargo, la FAT 32 es más lenta cuando se trabaja en aplicaciones DOS o en modo DOS.

    • No es compatible con FAT 16. Si se arranca el ordenador con un sistema operativo que no soporta FAT 32, por ejemplo, MS-DOS 6.2, Windows NT 4.0, Windows 3.1 o la versión original de Windows 95, no podrá acceder a los datos de la unidad FAT 32.

    • Las unidades FAT 32 no se pueden comprimir, pues Drivespace no soporta FAT 32.

    • No se puede usar en unidades de menos de 512 MB. Sólo es posible crear una FAT 32 en las unidades de disco cuyo tamaño sea superior a 512 MB. Es decir, todas las unidades de menos de 512 MB siempre utilizan FAT 16.

    Pros y contras de FAT 32

    Ventajas

    La principal ventaja es que FAT 32 usa el espacio del disco duro de forma más eficiente (no está de más recordar que ese disco interno es el sitio en el que el PC guarda los programas y la información). La razón está en que FAT 32 usa clusters más pequeños. Los clusters de FAT 32 en discos duros de hasta 8 GB son de 4 KB; en cambio los clusters de FAT 16 son de 32 KB (en discos duros de más de 1 GB).

    Tener clusters más grandes desperdicia espacio en el disco duro porque cada archivo está obligado a usar clusters completos. Por ejemplo, un archivo de 10 KB ocupa un cluster de 32 KB completo, o sea que desperdicia 22 KB de espacio. En cambio, en FAT 32 ese mismo archivo ocupa tres clusters de 4 KB; sólo se desperdician 2 KB. Por ello, la principal consecuencia de pasar el disco duro a FAT32 es que tendrá más espacio disponible. Por ejemplo, en un disco duro de 1,2 GB, que tenía 46 MB de espacio libre, la conversión a FAT32 aumentó el espacio libre a 413 MB.

    Otro beneficio es que, según Microsoft, los programas se inician hasta 50 por ciento más rápido. El hecho de usar clusters más pequeños permite que el Desfragmentador de disco ubique en el disco duro de forma más eficiente los archivos que hacen parte de un programa y los archivos necesarios para cargar el programa.

    Una ventaja adicional, que todavía no lo beneficia, es que FAT32 puede manejar discos duros de hasta 2 terabytes (TB); es decir, de 2.000 GB.

    Aprovechamiento del cluster

    'Sistema de archivos FAT'

    Como se observa en el gráfico la FAT aprovecha en un 30 % más, el espacio del disco duro, es decir, desperdicia menos el tamaño del cluster.

    Desventajas

    La principal desventaja es que FAT 32 no tiene reversa. Un disco duro convertido a FAT32 no se puede devolver a FAT 16. Y como Windows 95 no soporta FAT 32, no podrá desinstalar Windows 98 si convierte el disco duro a FAT 32. Claro que si no tiene intenciones de regresar a Windows 95, eso no debería ser un problema.

    Otra limitación es que FAT 32 no es compatible con el programa de compresión DriveSpace, que viene con Windows. Si convierte el disco a FAT 32, no puede comprimirlo con DriveSpace; además, no puede convertir a FAT 32 un disco que está comprimido con DriveSpace.

    Si planea usar el sistema operativo Windows NT 4 en el mismo PC en el que tiene Windows 98, por medio de la función inicio dual (dual boot), tampoco debería convertir el disco. FAT 32 no permite inicio dual con Windows NT 4.0.

    Finalmente, después de pasar el disco a FAT 32 dos procesos se harán más lentos que en un disco con FAT 16: usar Windows 98 en modo a prueba de fallos y Desfragmentar el disco duro.

    Crear una unidad FAT 32

    Existen dos formas de crear una unidad FAT 32, dependiendo de si se trata un disco duro que se está configurando por primera vez o si es una unidad FAT 16 ya creada que contiene datos.

    • Disco duro nuevo. Cuando está creando las particiones de un disco duro, tiene que elegir la opción que activa la “compatibilidad con discos grandes”, es decir, compatibilidad con FAT 32. En caso contrario, se crean particiones para unidades FAT 16. Al formatear el disco, se formateará con la FAT definida al crear la partición.

    • Unidad FAT 16 existente. Para convertir una unidad FAT 16 a FAT 32, ejecute el programa Convertidor de unidades FAT 32, localizado en Inicio-Programas-Accesorios-Herramientas del sistema. Este programa ejecuta un asistente que le guía paso a paso en el proceso de convertir la unidad a FAT 32. Dicho programa tiene estas etapas:

    • Primero tiene que seleccionar la unidad.

    • Segundo, se comprueba si tiene instalado algún programa antivirus para que lo desactive.

    • Tercero, se le pregunta si desea hacer una copia de seguridad de los datos, lo que no es necesario, pero siempre es recomendable para evitar problemas posteriores.

    • Al finalizar el asistente, se reinicia el ordenador, entrando en modo DOS y se realizan las acciones siguientes:

    • Se verifica la unidad con Scandisk.

    • Se eliminan los archivos de desinstalación de Windows 98.

    • Se convierte la tabla FAT 16 a FAT 32.

    Por último, se reinicia el ordenador entrando ahora en Windows 98 y se ejecuta automáticamente el desfragmentador de disco sobre esa unidad.

    BIBLIOGRAFÍA

    WINDOWS 98 de JAIME DE YRAOLAGOITIA

    Ed. PARANINFO, MADRID 1998

    EL SISTEMA OPERATIVO WINDOWS 98 de

    JOSE MANUEL ALONSO GARCÍA

    Ed. PARANINFO, MADRID 1998

    EL DOS NO DOCUMENTADO de

    SCHLMAN

    Ed. ADDISON - WESLEY, E.U.A 1995

    También se ha recogido información en internet y en revistas especializadas en informática.

    1

    'Sistema de archivos FAT'