Title: Sistemas de ficheros
1Sistemas de ficheros
MS-DOS
2MS-DOS
- Estructura del disco en MS-DOS
Partición 1
Partición 2 (MS-DOS)
Partición 4
Partición 3
Sector de arranque primario MBR (Master Boot
Record)
FAT
Direct. raÃz
Copia de FAT
Bloques de datos
Sector de arranque secundario
3MS-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.
4MS-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).
5MS-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.
6MS-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.
7MS-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
6
8
4
2
f1
libre
7
4
8
12
9
5
9
12
f2
3
10
error
11
EOF
12
10
3
13
f3
EOF
13
libre
14
8MS-DOS
Tamaño FAT, utilizando FAT32
9MS-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.
10MS-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).
11MS-DOS
- Entrada de directorio en MS-DOS
- Contiene
- Nombre del fichero
- Extensión .exe, .txt, etc. (Ext.)
- Atributos del sistema, ocultos, etc.
- Tiempo de última modificación (Tiempo),
- Fecha de creación (Fecha).
- Puntero al primer cluster de datos.
- Tamaño del fichero (Tamaño).
8
3
1
10
2
4
2
2
Bytes
Nombre
Ext.
Reservado
Tamaño
Atributos
Fecha
Tiempo
1er cluster
12MS-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.
13MS-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?
14MS-DOS
- Evolución de los sistemas de archivo basados en
MS-DOS - FAT32 (Windows 95 OSR2)
15Sistemas de ficheros
Unix / Minix
16Unix
- 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.
17Unix
NODO-I
Modo
Núm. enlaces
UID
GID
datos
longitud
Tiempo creación
datos
Tiempo modificación
Tiempo acceso
datos
10 punteros directos
datos
datos
datos
1 puntero indirecto
datos
1 ptr indirecto doble
1 ptr indirecto triple
datos
etc.
18Unix
- 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
Nombre de fichero
Núm nodo-i
19Minix
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
20Minix
- 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
etc
usr
home
4
home
5
etc
4
.
987
.
unx
os2
1
..
4
..
278
unx
987
os2
21Minix
- 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.
22Minix
- 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.
23Minix
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
24Minix
- 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
- 71Kb (1Kb / 2) 1Kb (1Kb / 2)2 1Kb
- 7 Kb 512 Kb 262.144 Kb 262.633 Kb (aprox.
256.5 Mb)
25Minix
- 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 10248 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
26Minix
- 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