Вы находитесь на странице: 1из 44

Captulo 5

Sistema de Ficheros
5.1 Ficheros
5.2 Directorios
5.3 Implementacin del sistema de ficheros
5.4 Ejemplos de sistemas de ficheros

Ficheros (1)
Almacenamiento de informacin a largo plazo
1.

Almacenar grandes cantidades de datos (ms de lo que cabe en


el espacio virtual de direccionamiento)

2.
3.

La informacin debe vivir ms all de la terminacin del


proceso que la utiliza (persistencia)
Mltiples procesos quieren acceder a la misma informacin
concurrentemente

Solucin: almacenar la informacin en unidades llamadas


Ficheros
Sistema Operativo: Gestor de Ficheros (Sistema de Ficheros)
Veremos: la perspectiva del usuario y la del SO
2

Ficheros. (Nombrado) (2)

Extensiones tpicas de un fichero


3

Ficheros. (Estructura) (3)

3 tipos de estructuracin
(a) Secuencia de bytes (Unix, Windows): interpreta el usuario
(b) Secuencia de registros: la unidad de R/W es el registro
(c) rbol, cada nodo contiene una clave

Ficheros. (Tipos) (4)


Varios tipos de ficheros.
Windows: regulares, directorios
Unix: regulares, directorios, especiales, pseudoficheros
Regulares: informacin del usuario, del tipo
binarios: ejecutables, archivos
ASCII: lneas de texto acabadas en: cr o
lf (UNIX), o crlf (MSDOS)
Directorios: mantienen la estructura del sistema de ficheros
Especiales de caracteres: impresora, terminal, network
Especiales de bloques: discos, disquettes
5

Ficheros. (Acceso) (5)


Acceso secuencial
Lee todos los bytes/registros desde el principio
No puede saltar, solo rebobinar
Adecuado con cintas magnticas

Acceso aleatorio
Se leen bytes/registros en cualquier orden
Esencial para bases de datos
En la lectura
Se da la posicin desde donde leer, o
Seek, read

Ficheros. (Atributos) (6)

Ficheros. (Operaciones) (7)


1. Create
2. Delete
3. Open
4. Close
5. Read
6. Write

7. Append
8. Seek
9. Get attributes
10.Set Attributes
11.Rename

Leer la seccin 6.1.7. La seccin 6.1.8 no entra para el examen


8

Directorios. (de un nivel) (1)


Directorios (folders, carpetas): estructuran el sistema de
ficheros.

Es simple, fcil de implementar.


Colisin de nombres (solo un espacio de nombrado)
Tampoco til con un solo usuario (miles de ficheros)
9

Directorios. (de dos niveles) (2)


Cada usuario tiene su propio directorio

Identificacin del usuario


Acceso a ficheros que no son del usuario (p.e. del sistema)

10

Directorios. (jerrquico) (3)

11

Directorios. (Path Names) (4)


Nombre absoluto
Nombre relativo
Directorio de trabajo
Entradas: . ..

12

Directorios. (Operaciones) (5)


1.
2.
3.
4.

Create
Delete
Opendir
Closedir

5. Readdir
6. Rename
7. Link
8. Unlink

13

Implementacin del sistema de


ficheros. (Estructura) (1)
Direcciones de comienzo y fin

activa
Master Boot Record

PowerOn: BIOS lee y ejecuta MBR; MBR localiza particin activa, lee y ejecuta el
boot block

14

Implementacin del sistema de


ficheros. (implementacin de ficheros) (2)
En qu bloques del disco est el contenido de un fichero?
Asignacin contigua

15

Implementacin del sistema de


ficheros. (implementacin de ficheros) (3)
En qu bloques del disco est el contenido de un fichero?
Asignacin contigua (ventajas)
- Fcil implementar
- Dnde estn los bloques de un fichero?
- direccin del primer bloque
- nmero de bloques
- buen rendimiento en lectura: solo 1 seek 1 rotacin
Asignacin contigua (desventajas)
- Encontrar un hueco lo bastante grande
- Hay que conocer el tamao final del fichero
- La compactacin es cara
- Adecuado para CDs

16

Implementacin del sistema de


ficheros. (implementacin de ficheros) (4)
En qu bloques del disco est el contenido de un fichero?
Lista encadenada

17

Implementacin del sistema de


ficheros. (implementacin de ficheros) (5)
En qu bloques del disco est el contenido de un fichero?
Lista encadenada
- No fragmentacin externa, SI fragmentacin interna
- En la entrada al directorio: direccin del primer bloque
- Mal para acceso aleatorio
- La cantidad de bytes en un bloque no es potencia de 2
- los programas R/W en potencias de 2
- hay que acceder a dos bloques
18

Implementacin del sistema de


ficheros. (implementacin de ficheros) (6)
En qu bloques del disco est el contenido de un fichero?
Lista encadenada utilizando una tabla en memoria
File Allocation Table

19

Implementacin del sistema de


ficheros. (implementacin de ficheros) (7)
En qu bloques del disco est el contenido de un fichero?
Lista encadenada utilizando una tabla en memoria (FAT)
Ventajas:
- Todo el bloque para datos
- Acceso aleatorio mejorado
- Entrada al directorio: primer bloque
Desventajas:
- Toda la tabla debe estar en memoria.
disco: 20Gb; bloque: 1K; n entradas: 20 millones
tamao de la entrada: 3 bytes; tamao de la tabla: 60 Mb (en memoria)

20

Implementacin del sistema de


ficheros. (implementacin de ficheros) (8)
En qu bloques del disco est el contenido de un fichero?
I-node

21

Implementacin del sistema de


ficheros. (implementacin de ficheros) (9)
En qu bloques del disco est el contenido de un fichero?
I-node
Ventajas:
- Slo en memoria el i-node del fichero abierto
- Tabla de i-nodes residentes en memoria (para todos los procesos)
- Tabla de ficheros abiertos (por proceso)
- Cada proceso tiene un mximo de ficheros abiertos
Desventajas:
- Los punteros indirectos aumentan el tiempo de bsqueda de bloques

22

Implementacin del sistema de ficheros.


(implementacin de directorios)

(10)

Cada entrada al directorio mantiene los bloques de disco del fichero


y sus atributos
(a) Entrada: nombre, atributos y bloques de disco (MSDOS, Windows)
(b) Entrada: nombre y n i-node (Unix)

23

Implementacin del sistema de ficheros.


(implementacin de directorios)

(11)

Cada entrada al directorio mantiene el nombre del fichero: longitud fija


MSDOS: 8+3;
Unix V.7: de 1 a 14
Longitud del nombre variable y ms grande?

24

Implementacin del sistema de ficheros.


(implementacin de directorios)

(12)

(a) Entrada al directorio de longitud variable


- Cuando se elimina queda un hueco de tamao variable
(b) Entrada al directorio de longitud fija
- los nombres de los ficheros al final del directorio
- ventaja: no huecos de longitud variable
Bsqueda lineal en el directorio lenta (si muchas entradas)
Mejor: tabla hash en cada directorio
Opcin: memoria cach

25

Implementacin del sistema de ficheros.


(ficheros compartidos)

(13)

link

26

Implementacin del sistema de ficheros.


(ficheros compartidos)

(14)

Problema: si las entradas contienen las direcciones de disco


La entrada de B contiene una copia de la entrada de C
Si B o C hacen crecer el fichero, solo se modifica una entrada
Solucin 1: i-nodes

27

Implementacin del sistema de ficheros.


(ficheros compartidos)

(15)

Solucin 2: enlaces simblicos (ficheros tipo link)


- No presentan el problema anterior: si el propietario elimina el fichero,
el contenido del fichero link indica un fichero que no existe.
- Adems, un enlace simblico puede enlazar ficheros en otros nodos.
- Presenta otros problemas:
- sobrecarga por tener el nombre y no el i-node
- Un i-node extra por cada enlace simblico
- Un enlace simblico es un alias: un fichero varios nombres:
ojo al recorrer el sistema de ficheros

28

Implementacin del sistema de ficheros.


(gestin de espacio en disco)

(16)

Cmo almacenar en disco los n bytes de un fichero?


- N bytes contiguos en disco.
- y si el fichero crece?
- En bloques (contiguos o no) de tamao fijo
Tamao del bloque?
- cilindro
- pista
- sector
Si muy grande (cilindro): desperdicio
tamao medio de un fichero: 1K
1 bloque: 32k
se desperdicia el 97% del espacio
29

Implementacin del sistema de ficheros.


(gestin de espacio en disco)

(17)

Si muy pequeo: muchos accesos: muy lento. Ejem:


pista: 217 bytes = 131072 bytes
tiempo de rotacin: 8,33 ms
tiempo medio de posicionamiento: 10 ms
Para leer un bloque de k bytes:
Tpos. = 10 ms
Trot. = 8,33/2 = 4,165 ms
Ttra. = (k/131072) * 8,33
Si el bloque se muy pequeo, prima los tiempos de posicionamiento
y de espera de rotacin.

30

Implementacin del sistema de ficheros.


(gestin de espacio en disco)

(18)

Tamao del bloque (bytes)

Todos los ficheros son de 2k


31

Implementacin del sistema de ficheros.


(gestin de espacio en disco)

(19)

Cules son los bloques libres?


(a) Lista enlazada de bloques libres; (b) mapa de bits

32

Implementacin del sistema de ficheros.


(gestin de espacio en disco)

(20)

Cules son los bloques libres?


Disco de 16Gb, tamao del bloque: 1k
Nmero de bloques: 24*230/210 = 224
32 bits para direccionar un bloque (por qu no 24?)
Cunto ocupa cada mtodo si disco vaco?

Lista enlazada.
- 1kb/4bytes = 255 dir. por bloque (+ 1 puntero)
- 224/255 = 65793 bloques de 1kb

(b) Mapa de bits


- 224 bits /(210*23) = 211 (2048) bloques de 1k
El epgrafe Disk Quotas (Cuotas de disco) (pg. 415) no entra para el examen
33

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(21)

El hardware es fcil sustituirlo (solo dinero)


Si se pierde el sistema de ficheros desastre!!

Backups
La informacin se pierde por errores hardware, fuego,
La informacin se pierde por acciones del usuario (rm *)
Ejemplo de recuperacin: papelera de Windows
Los backups consumen tiempo y espacio
Backup de todo el sistema de ficheros o de parte de l?
- los fichero del sistema no son necesarios
- los ficheros temporales tampoco
- los especiales (/dev) no tiene sentido
Solo hacer respaldo de parte del sistema de ficheros
34

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(22)

Hacer respaldo de los que no han sufrido modificaciones?


NO: Backup incremental
- hacer un respaldo completo cada semana (mes)
- hacer un respaldo diario de slo los que han cambiado
- minimiza la cantidad de espacio necesario
- Dificulta la restauracin
Se comprimen los datos en el respaldo?
- Ojo con los errores en la superficie de la cinta
Cundo realizar el respaldo?
- Los ficheros pueden estar en uso
- Se pueden estar creando/borrando ficheros
- Offline (de noche)
Dnde guardar los respaldos?
35

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(23)

Backup fsico
Copiar a cinta desde el bloque 0 al ltimo bloque del disco
- simple
- copia bloques libres (vacos)
- utilizar lista de bloques libres y no copiarlos
- ahora cada bloque debe llevar su nmero
- copia bloques malos
- no incremental, copia todo, NO SE UTILIZA
Backup lgico
- copia slo la informacin (ficheros y directorios) seleccionada
- diferentes algoritmos

(Leer el ejemplo de algoritmo de backup lgico de la pginas 419-421)


36

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(24)

Consistencia del sistema de ficheros


Por fallos hw o soft fallan lecturas/escrituras de bloques crticos:
El sistema de ficheros queda en un estado inconsistente.
Programas que validan la consistencia del sistema de ficheros:
- fsck (Unix)
- scandisk (Windows)
Dos tipos de operaciones:
- consistencia de bloques
- consistencia de ficheros
Cmo se valida la consistencia de bloques?
37

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(25)

Consistencia del sistema de ficheros (bloques)

(c)

(d)

(a) Consistente (b) Bloque perdido (c) Bloque duplicado en la lista de libres
(d) Bloque de datos duplicado
38

Implementacin del sistema de ficheros.


(fiabilidad del sistema de ficheros)

(26)

Consistencia del sistema de ficheros (ficheros)


Tabla de ficheros: una entrada por fichero
Recorrer el sistema de ficheros. Por cada aparicin de un fichero,
Incrementar en 1 su entrada a la tabla
Compara esta tabla con la informacin de los i-nodes (por fichero)
=, el sistema de ficheros es consistente.
nlink del i-node > la cuenta calculada; fijar nlink
Nlink del i-nolde < la cuenta calculada; fijar nlink

Consistencia del sistema de ficheros (proteccin)


Bit de proteccin extraos: 0007
39

Implementacin del sistema de ficheros.


(rendimiento del sistema de ficheros)

(27)

-Leer una palabra (32 bits) de memoria 10 nseg.


- Disco que transfiere a 10MB/seg. Leer 1 palabra (4 bytes = 32 bits)
4 bytes en 4.10 -7 seg.
-Tiempo de posicionamiento + tiempo de latencia = 5..10 mseg.
- 10 nseg. frente a 10 mseg.
El acceso a disco es un milln de veces ms lento
que el acceso a memoria
Cmo mejorar el rendimiento del disco?
40

Implementacin del sistema de ficheros.


(rendimiento del sistema de ficheros)

(28)

Buffer cach
Para reducir el nmero de accesos a disco
Imagen en memoria de algunos bloques de disco
Si el bloque a leer est en la cach, no hace falta acceder a disco
Si no est en la cach, traerlo y quitar uno.

41

Implementacin del sistema de ficheros.


(rendimiento del sistema de ficheros)

(29)

Buffer cach
EL bloque es esencial para mantener la consistencia del
sistema de ficheros? (i-nodes, espacio libre, bloques de punteros
indirectos)
SI: escribirlo a disco inmediatamente
NO: cache
Datos en la cache pueden perderse: llamada sync (Unix)
MSDOS: escribir inmediatamente a disco cualquier bloque modificado

42

Implementacin del sistema de ficheros.


(rendimiento del sistema de ficheros)

(30)

Lectura adelantada
Suposicin: lectura secuencial
Cuando se pide un bloque el sistema lee el solicitado y el siguiente
o siguientes
Seguir la pista del patrn de acceso de cada fichero abierto

Reduccin del movimiento del brazo del disco


- Poner los bloques que se van a acceder en secuencia, cerca
uno de otro.
- Cluster
- Cylinder skew
43

Implementacin del sistema de ficheros.


(rendimiento del sistema de ficheros)

(31)

Reduccin del movimiento del brazo del disco

(La seccin 6.3.8 no entra para el examen)

44

Вам также может понравиться