270 likes | 482 Views
Sistemas de ficheros. MS-DOS. MS-DOS. Estructura del disco en MS-DOS. Partición 1. Partición 2 (MS-DOS). Partición 3. Partición 4. Sector de arranque primario MBR (Master Boot Record). FAT. Copia de FAT. Direct. raíz. Bloques de datos. Sector de arranque secundario. MS-DOS.
E N D
Sistemas de ficheros MS-DOS
MS-DOS • Estructura del disco en MS-DOS Partición 1 Partición 2 (MS-DOS) Partición 3 Partición 4 Sector de arranque primario MBR (Master Boot Record) FAT Copia de FAT Direct. raíz Bloques de datos Sector de arranque secundario
MS-DOS • Estructura del disco en MS-DOS • Sector de arranque primario (MBR: Master Boot Record). Es un sector (512 bytes). Contiene: • El programa de arranque: la BIOS supondrá que el MBR contiene código ejecutable si los dos últimos bytes del MBR son 0xAA55. Sólo puede llegar hasta el byte 0x1BD (446 bytes). • La tabla de particiones se encuentra en 0x1BE: indica el principio, el tamaño y el tipo de cada partición. Se manipula con comandos como fdisk • 0x1BE, primera partición. • 0x1CE, segunda partición. • 0x1DE, tercera partición. • 0x1EE, cuarta partición.
MS-DOS • Organización de una partición MS-DOS La partición contiene: • Cabecera: información previa a la zona de datos. Está organizada en sectores (512 bytes) y contiene: • Sector de arranque • FAT (File Allocation Table): tabla que describe a qué fichero pertenece cada cluster de datos. Contiene una entrada por cada cluster de datos. Los clusters libres y defectuosos se marcan con un código especial. • Copia de la FAT: para mejorar la fiabilidad • Directorio raíz: es el único directorio que no se implementa como un fichero. • Zona de datos donde se almacenan los ficheros. Se organiza en clusters (2N sectores contiguos).
MS-DOS • Sector de arranque de MS-DOS El sector de arranque de MS-DOS contiene • Información sobre el sistema de archivos como: • Número de bytes por sector. • Número de sectores por cluster. • Tamaño del directorio raíz. • Número de tablas FAT. • Tamaño del dispositivo. • Código para iniciar el s.o.: • Búsqueda del directorio raíz. • Carga de los ficheros “io.sys” y “msdos.sys”. • Transfiere control al “io.sys”.
MS-DOS • La FAT (File Allocation Table) • MS-DOS organiza los ficheros como una lista enlazada, pero los punteros no se encuentran en el cluster, sino en una estructura de datos denominada (FAT) localizada en los primeros sectores del disco. • La FAT contiene una entrada por cada cluster de datos. Esta entrada puede indicar: • Si el cluster está libre (código especial) • Si el cluster es defectuoso (código especial) • En el caso que el cluster esté ocupado, indica el siguiente cluster o final de fichero (código especial) si es el último.
MS-DOS • La FAT (File Allocation Table) DIRECTORIO reservado 0 Tamaño del disco Nombre fichero 1er cluster reservado 1 ... EOF 2 13 3 f1 ... 6 2 4 f2 ... 5 9 5 f3 ... 10 8 6 f1 6 8 4 2 libre 7 4 8 12 9 f2 5 9 12 3 10 error 11 EOF 12 f3 10 3 13 EOF 13 libre 14
FAT12 FAT16 FAT32 Atributos Disquetes y Particiones Particiones Se utiliza en particiones (pequeñas y (medianas y (pequeñas) medianas) grandes) Tamaño de 12 bits 16 bits 28 bits entrada Máximo número de 4,078 65,518 ~268,435,456 Clusters Tamaño de Cluster 0.5 KB a 4 KB 2 KB a 32 KB 4 KB a 32 KB Máximo tamaño de 16,736,256 2,147,123,200 Aprox. 2^41 la partición MS-DOS • Ejemplos de FAT Tamaño FAT, utilizando FAT32
MS-DOS • La FAT: análisis • El acceso directo sigue siendo costoso de implementar (aunque no tanto como en la asignación enlazada) debido al elevado número de desplazamientos del cabezal del disco: • Ejemplo: lseek (fd, 32768,0) Si la FAT no se encuentra completa en memoria son necesarios en el peor caso 33 accesos a bloques. No obstante, colocar parte de la FAT en una cache en memoria mejora significativamente el caso medio. • Diseño poco elegante: en una misma estructura de datos se mezcla información de diferentes ficheros. • Baja fiabilidad: la pérdida de un bloque de la FAT puede ocasionar la pérdida del disco entero. • Posible mejora: replicar la FAT.
MS-DOS • Directorios en MS-DOS • Estructura de directorios: árbol. • Los directorios son ficheros con un número arbitrario de entradas excepto el directorio raíz que está en la cabecera del disco y tiene un tamaño máximo prefijado (Ejemplo: 224 entradas para disquetes de 3.5”). • La entrada de directorio contiene todos los atributos del fichero de forma residente excepto los datos, para los cuales sólo se indica el primer cluster (la FAT proporciona el resto de punteros).
MS-DOS • Entrada de directorio en MS-DOS • Contiene: • Nombre del fichero • Extensión: .exe, .txt, etc. (Ext.) • Atributos: del sistema, ocultos, etc. • Tiempode última modificación (Tiempo), • Fechade creación (Fecha). • Puntero al primer cluster de datos. • Tamaño del fichero (Tamaño). Bytes 8 3 1 10 2 2 2 4 Nombre Ext. Reservado Tamaño Atributos Tiempo Fecha 1er cluster
MS-DOS • Evolución de los sistemas de archivo basados en MS-DOS: • FAT12 (DOS anteriores a la versión 4.0 y disquetes) • Valores de cluster en la FAT son de 12 bits. • Máximo número de clusters direccionables = 4078 (18 valores reservados) • Nombre de fichero = 8 + 3 caracteres. • El número de entradas del directorio ‘\’ está limitado. • FAT16 (DOS posteriores a la versión 4.0) • Valores de cluster en la FAT son de 16 bits. • Máximo número de clusters direccionables = 65518. • Valores límite de las particiones: 65518 * tamaño del cluster.
MS-DOS • Evolución de los sistemas de archivo basados en MS-DOS: • VFAT (Windows 95 OSR1 y DOS 7.x) • Valores de cluster en la FAT son de 12 ó 16 bits. • Long File Names (LFN): nombre del fichero (255 caracteres), alias atributos adicionales (RO | Hidden | System | Vol Label). • Acceso a disco utilizando las rutinas de 16 ó 32 bits (high-speed & protected mode). • FAT32 (Windows 95 OSR2) • Valores de cluster en la FAT son de 28 bits. • No está limitado el tamaño ni el número de entradas en ‘\’. • Teóricamente puede soportar discos con 268 millones de clusters (2TB). ¿Tamaño de la FAT?:
MS-DOS • Evolución de los sistemas de archivo basados en MS-DOS: • FAT32 (Windows 95 OSR2)
Sistemas de ficheros Unix / Minix
Unix • Estructura de datos nodo-i (i-node) • Estructura de datos donde se registran todos los atributos de un fichero excepto el nombre. • Utiliza asignación indexada de bloques con punteros a bloques directos, indirectos, doblemente indirectos y triplemente indirectos. • Estructura de datos nodo-i : análisis • Acceso aleatorio eficiente: El número máximo de accesos a disco está limitado a 4. • Los punteros indirectos sólo se utilizan para ficheros grandes y muy grandes (que son escasos). • Para los ficheros pequeños el acceso es muy eficiente. • Diseño elegante y fiable: cada fichero tiene su estructura de datos separada.
Unix NODO-I • Nodos-i Modo Núm. enlaces UID GID longitud datos Tiempo creación Tiempo modificación datos Tiempo acceso datos 10 punteros directos datos datos datos 1 puntero indirecto 1 ptr indirecto doble datos 1 ptr indirecto triple datos etc.
Unix • Directorios en UNIX • La estructura de directorios es un grafo acíclico dirigido (DAG). • Los directorios son ficheros. • La entrada de directorio (denominada enlace) no tiene ningún atributo residente; sólo el nombre del fichero y una referencia al nodo-i (número de nodo-i ). • El nombre del fichero incluye la extensión (total 14 bytes por defecto, pero con posibilidad de especificar nombres más largos en la configuración del sistema). 2 14 Bytes Núm nodo-i Nombre de fichero
Minix • Nodo-i en Minix tipo: directorio, regular, especial bits de permiso modo propietario grupo datos instante modif. tamaño datos nº de enlaces En una zona de 1024 bytes caben 512 referencias de 2 bytes 7 zonas 32 bytes 0 datos 1 2 datos 3 512 zonas 4 5 datos . . . datos . . . 6 i indirecto datos datos di doble indirecto . . . 5122 zonas 16 bits datos . . . datos
Minix • Directorios en MINIX • La entrada de directorio es de 16 bytes: 2 para nodo-i y 14 para nombre • Cuando se crea un directorio, se crean las entradas ‘.’ y ‘..’ automáticamente. • El nodo-i 1 describe al directorio raíz • Cuando se borra una entrada se marca con el nodo-i 0 / 1 . 1 .. 3 usr usr etc home 4 home 5 etc 4 . 987 . unx os2 1 .. 4 .. 278 unx 987 os2
bloque de arranque mapa de nodos-i mapa de zonas zonas de datos bloques de nodos-i superbloque Minix • Estructura del disco en MINIX • Un partición Minix se construye sobre un entramado de bloques de tamaño fijo. La estructura de la partición consta de: • La cabecera estructurada en grupos de bloques con las estructuras de datos del sistema de ficheros • Los bloques de datos estructurados en zonas. Las zona es la unidad de asignación. 1 zona = 2N bloques. En la distribución estándar, una zona equivale a un bloque.
Minix • Estructura del disco en MINIX • Bloque de arranque: contiene el programa de arranque que carga el sistema operativo y le transfiere control. • Superbloque: es una estructura de datos con la descripción de la estructura del disco: tamaño y ubicación de cada elemento. • Mapa bits nodos-i: es un vector de bits que indica los nodos-i libres y ocupados. Existe un bit por cada nodo-i. • Mapa bits zonas: es un vector de bits que indica las zonas libres y ocupadas. Existe un bit por cada zona. • Bloques de nodos-i: contienen las estructuras de datos nodos-i. Una por cada fichero. El número de nodos-i depende del tamaño de la partición. El nodo-i 0 no se utiliza. • Bloques de datos: bloques que almacenan bloques de datos de ficheros regulares, directorios y de referencias a otros bloques.
Minix • Superbloque de MINIX Número de bloques Asignado al crear el sistema de archivos. Puede ser menor que el tamaño de la partición Número de nodos-i Asignado al crear el sistema de archivos. Es fijado por el usuario o se asigna un valor calculado por defecto Número de bloques para el mapa de nodos-i [Número de nodos-i / Número de bits por bloque] Número de bloques para el mapa de zonas [Número de zonas de datos / Número de bits por bloque] Primer bloque de datos 2 (arranque y superbloque) + Número de bloques para el mapa de nodos-i + Número de bloques para el mapa de bloques + Número de bloques de nodos-i Número mágico Un valor numérico que sirve para “garantizar” que esta partición contiene un sistema de archivos MINIX
Minix • Tamaños estándar en MINIX • Bloque (=Zona): 1024 bytes • Referencia a bloque: 2 bytes • Enlace en directorio: 16 bytes • Nodo-i: 32 bytes • Cálculo del tamaño del fichero máximo Con punteros de 16 bits, tamaño de zona de 1Kb y la estuctura del nodo-i descrita el tamaño del fichero máximo es el mínimo entre las siguientes cantidades: • 216 * 1Kb = 64 Mb • 7*1Kb + (1Kb / 2) * 1Kb + (1Kb / 2)2 * 1Kb= 7 Kb + 512 Kb + 262.144 Kb = 262.633 Kb (aprox. 256.5 Mb)
Minix • Cálculo de la estructura de una partición en MINIX • Tamaños calculados en MINIX dados: T (número de bloques del sistema de archivos) y F (número de nodos-i máximo sin incluir el cero): • Bits_Por_Bloque: 1024*8 = 8192 • Enlaces_Por_Zona: 1024 / 16 = 64 • Referencias_Por_Zona: 1024 / 2 = 512 • Nodos-i_Por_Bloque: 1024 / 32 = 32 • Bloques_Mapa_Nodos-i: F / Bits_Por_Bloque • Bloques_Mapa_Zonas: Zonas de datos / Bits_Por_Bloque • Bloques_Nodos-i: F / Nodos-i_Por_Bloque • Bloques_De_Datos: T - 2 - Bloques_Mapa_Nodos-i - Bloques_Mapa_Zonas - Bloques_Nodos-i
Minix • Zonas y bloques en Minix • Para direccionar particiones de gran tamaño, Minix permite agupar los bloques de datos en zonas. • Una zona = 2N bloques. El valor N se almacena en el superbloque. • El primer bloque de datos (valor almacenado en el superbloque) se reajusta para que coincida con el comienzo de una zona. • Ejemplo: • Bloque: 1024 bytes • Zona: 4 Bloques • Enlaces_Por_Zona: 4096 / 16 = 256 • Referencias_Por_Zona: 4096 / 2 = 2048