Sistemas Operativos
ndice
1. Introduccin (Tanenbaum [C6.Introduccin]) 2. Ficheros (Tanenbaum [C6.1]) 3. Directorios (Tanenbaum [C6.2]) 4. Implementacin del sistema de cheros (Tanenbaum [C6.3]) 5. Sistemas de cheros en Linux (Tanenbaum [C10.6]) 6. Sistemas de cheros en Windows 2000 (Tanenbaum [C11.7])
1. Introduccin
El almacenamiento secundario es necesario para: Almacenar gran cantidad de datos Almacenar datos persistentes (vlidos entre sesiones) Compartir datos (si la proteccin de la memoria no lo permite) Los dispositivos de almacenamiento secundario pueden ser muy distintos El S.O. debe proporcionar una interfaz sencilla para acceder a dichos dispositivos Solucin: sistema de cheros, basado en cheros y directorios Primero veremos el sistema de cheros desde el del usuario y, despus, desde el del S.O. (implemen.)
Tema 5 Sistemas de Ficheros p.
ndice
2. Ficheros (Tanenbaum [C6.1]) 2.1. Concepto de chero 2.2. Estructura de un chero. Tipos de cheros 2.3. Acceso a un chero 2.4. Atributos de un chero 2.5. Operaciones con cheros 2.6. Ficheros proyectados en memoria 2.7. Semnticas de comparticin Carretero[C8.2.5]
Cabecera
Cabecera
Fecha
Punto de entrada
Mdulo objeto
Banderas Cdigo
Mdulo objeto
(b)
Campo
%,-,/05E3,8
5E 7.;4
,948.43;,473., ,94883;,473.,
7.;4
46:0
46:0
# #
46:0 ,7.
46:0 ,7.
7.;4!740.9,/4
46:0 46:0
!,
ndice
3. Directorios (Tanenbaum [C6.2]) 3.1. Sistemas jerrquicos de directorios 3.2. Nombre de la ruta de acceso 3.3. Operaciones con directorios
3.1 Directorios
Suelen ser cheros que almacenan informacin sobre otros cheros (nombre, atributos, etc.) Son posibles distintas organizaciones: Directorio nico Sistema jerrquico de directorios
ndice
4. Implementacin del sistema de cheros (Tanenbaum [C6.3]) 4.1. Implementacin de cheros 4.2. Implementacin de directorios 4.3. Ficheros compartidos 4.4. Administracin del espacio en disco 4.5. Conabilidad del sistema de cheros 4.6. Cach de disco. Jerarqua de almacenamiento 4.7. Sistemas de cheros modernos
Fichero B 0
Bloque 3 del fichero
Bloque fsico
10
12
11
14
Cada bloque contiene un puntero (no de bloque) al bloque siguiente Pros y contras Fcil implementacin Registro: bloque inicial Se aprovechan todos los bloques del disco El acceso aleatorio es lento (hay que recorrer una lista) El espacio de almacenamiento de un bloque deja de ser potencia de 2
......
Misma idea que antes, pero los punteros se almacenan en una estructura aparte (ndice) que se almacena en disco, se lee cuando se usa el sistema de cheros y se escribe de nuevo en disco si se modica Desaparecen desventajas anteriores Posible problema: tamao de la tabla Ejemplo: FAT de MS-DOS
217
618
618
339
noticias atributos
8
Nombre del fichero
3 1
10
2 2 2
4
Tamao
Extensin Atributos
Un bit de los atributos de la entrada distingue a un directorio de un chero normal un directorio puede tener subdirectorios rbol de directorios El directorio raz es una excepcin, ya que ocupa unos bloques jos de disco y tiene un tamao mximo establecido
Las entradas no almacenan atributos de cheros sino nombres y no s de nodos-i asociados. El tipo de chero es una excepcin y se utiliza para acelerar los listados de directorios
Algunos atributos (como el instante de modicacin o el tamao) tienen una copia en la entrada de directorio para optimizar el listado del directorio Los directorios grandes se implementan como rboles B+ El nmero de entrada en la MFT desempea un papel similar al de los nodos-i, como ya veremos
Se puede usar una cach para guardar el resultado de la resolucin y as acelerar el proceso
todos
contar
contar
Palabras
lista
lista
rade
w7
A la hora de elegir un tamao de bloque lgico hay que buscar un equilibrio razonable entre: eciencia en el uso del espacio (desperdiciado, principalmente, por fragmentacin interna) y tasa de transferencia
Utilizacin del espacio en disco Utilizacin del espacio en disco (porcentaje) Tasa de datos (Kbytes/seg)
100 75 50
25 0
310 516
180 482
142 141
0111011101110111 1101111101110111
Un bloque de disco de 1K puede contener 256 nmeros de bloques de disco de 32 bits (a)
La conguracin sobre cuotas se guarda en cheros especiales del propio sistema de cheros Se puede tener un nivel exible y otro estricto
Nm. actual de bloques Nm. de advertencias restantes de bloques Lmite de ficheros flexible Lmite de ficheros estricto Nm. actual de ficheros Nm. de advertencias restantes de fichero Registro de cuota del usuario 8
Las copias de seguridad pueden serlo bien de todo (total) o bien de lo ltimo que se ha modicado (incremental) La copia de seguridad total: tarda mucho para dispositivos muy grandes y requiere dispositivos de respaldo de gran capacidad puede enlentecer todo el sistema si la copia se hace durante el funcionamiento de ste (es posible?)
Nmero de bloque 0 1 2 3 4 5 6 7 8 9 101112131415 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Bloques en uso 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 Bloques libres (b) 0 1 2 3 4 5 6 7 8 9 101112131415 1 1 0 1 0 2 1 1 1 0 0 1 1 1 0 0 Bloques en uso 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Bloques libres (d)
El no de enlaces calculado es mayor que el del nodo-i Error potencialmente grave! (el nodo-i se podra liberar antes de que desaparezcan todos sus enlaces) Solucion anterior
Para mejorar su desempeo, la solucin ms comn es utilizar una porcin de la memoria principal para almacenar bloques de disco, conocida como cach de disco (o, tambin, cach de bloques o cach de buffers) Ahora podemos usar como algoritmo de reemplazo un LRU con listas ligadas pero hay bloques que necesitan un tratamiento especial LRU modicado que tiene en cuenta dos factores independientes: 1. Es probable que el bloque se vuelva a necesitar pronto? Si no es as, colocar directamente al nal de la lista LRU 2. Es esencial el bloque para la consistencia del SS.FF.? Si es as, escribir en disco lo antes posible
Los bloques de datos tampoco pueden permanecer indenidamente en memoria (los usuarios podran perder informacin importante). 2 soluciones son: Cach de escritura directa (write-through): cualquier modicacin se escribe inmediatamente en disco. Es til para dispositivos pequeos extrables (disquetes) Cach de escritura diferida (write-back ): los bloques modicados de cach se escriben peridicamente en disco (por ejemplo, en Linux se escriben cada 30 segundos)
Una forma adecuada de organizar todos esos elementos es jerrquicamente, en funcin de la velocidad, coste, tamao y volatilidad de cada elemento
ndice
5. Sistemas de cheros en Linux (Tanenbaum [C10.6]) 5.1. Conceptos fundamentales 5.2. El sistema de cheros virtual (VFS) 5.3. Montaje de sistemas de cheros 5.4. Ext2
Bloque de arranque
Raz Intercambio
CD-R
Sistemas de ficheros
Dispositivos lgicos
Dispositivos fsicos
5.4 Ext2
Ext2 es el sistema de cheros por defecto de Linux. Sus principales caractersticas son: Nombres largos (hasta 255 caracteres) Ficheros grandes (ms de 4 TBytes) Direcciones de bloque lgico de 4 bytes Buen rendimiento Ext2 divide el dispositivo de almacenamiento en grupos de bloques. Cada grupo contiene: Una copia del superbloque Una copia de los descriptores de grupo Un bloque para el mapa de bits de bloques Un bloque para el mapa de bits de nodos-i Varios bloques para nodos-i Bloques de datos hasta completar el grupo
Superbloque
Nodos-i
Bloques de datos
El superbloque contiene informacin sobre la estructura general del sistema de cheros: Tamao del bloque lgico (en logaritmo en base 2) Total de nodos-i y nmero de nodos-i libres Total de bloques de datos y nmero de bloques libres Tamao de grupo (en bloques) Nodos-i por grupo
ndice
6. Sistemas de cheros en Windows 2000 (Tanenbaum [C11.7]) 6.1. Conceptos fundamentales 6.2. NTFS
6.2 NTFS
NTFS es el principal S.F de Windows NT, 2000, XP y 2003. Sus principales caractersticas son: Nombres largos (hasta 255 caracteres) en formato Unicode Ficheros muy grandes (en teora, hasta 264 bytes) Ficheros multiujo (un cheros es uno o ms ujos de bytes a los que se puede acceder de manera individual) Direcciones de bloque lgico de 8 bytes y tamaos de bloque lgico entre 512 bytes y 64 Kbytes Compresin transparente de cheros Cifrado de cheros Rendimiento adecuado
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
First user file (Reserved for future use) (Reserved for future use) (Reserved for future use) (Reserved for future use) $Extend Extentions: quotas,etc $Upcase Case conversion table $Secure Security descriptors for all files $BadClus List of bad blocks $Boot Bootstrap loader $Bitmap Bitmap of blocks used $ Root directory $AttrDef Attribute definitions $Volume Volume file $LogFile Log file to recovery $MftMirr Mirror copy of MFT $Mft Master File Table
Metadata files
20
64
80
Unused
Si el chero es tan grande o est tan fragmentado que la informacin de bloques no cabe en su registro MFT (registro base), se usan otros registros MFT (registros de extensin) para guardar el resto de la informacin: En este caso, el registro base tiene un atributo con la lista de registros de extensin Si esta lista es muy grande, dicho atributo se puede hacer no residente
A directory entry contains the MFT index for the file, the length of the file name, the file name itself, and various fields and flags
Standard info
Unused
Los directorios grandes, en cambio, se implementan como rboles B+ El nmero de registro MFT desempea un papel similar al de nmero de nodo-i en otros sistemas de cheros