Está en la página 1de 83

Diseo de Sistemas Operativos

Captulo 8
Gestin de Archivos y Directorios

Extrado de Sistemas operativos: una visin aplicada


J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistema de archivos
Requisitos de un sistema de archivos
Archivos/directorios: Tipos e Informacin
Visin lgica visin fsica: (sistemas de archivos)
MS-DOS FAT
UFS: Unix File System
Diseo interno de un sistema de archivos
Servidor de bloques
Elementos especiales:
Cerrojos
Redundancia
Recuperacin (journaling)
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Caractersticas para el usuario


Almacenamiento permanente de informacin. No desaparecen
aunque se apague el computador.
Conjunto de informacin estructurada de forma lgica segn
criterios de aplicacin.
Nombres lgicos y estructurados.
No estn ligados al ciclo de vida de una aplicacin particular.
Abstraen los dispositivos de almacenamiento fsico.
Se acceden a travs de llamadas al sistema operativo o de
bibliotecas de utilidades.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Caractersticas para el SSOO


El sistema de archivos es un servicio para los usuarios.
El acceso a los dispositivos es:
Incmodo
Detalles fsicos de los dispositivos
Dependiente de las direcciones fsicas

No seguro
Si el usuario accede a nivel fsico no tiene restricciones

Objetivos:
Proporcionar mecanismos de nombrado y localizacin de
datos no voltiles.
Ofrecer primitivas de acceso cmodas e independientes de
los detalles de los dispositivos fsicos
Mecanismos de proteccin
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistema de archivos: Objetivos

Cmo se
identifica y
localiza

Estructura lgica
para almacenar
informacin

Esquema de
nombrado

Mecanismo de
almacenamiento

Directorios y
archivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

Cmo se
almacena y
recupera

Gestin de
dispositivos
5

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura de los sistemas de archivos


Usuarios y
Aplicaciones

1. Visin del usuario:

Archivos
Directorios
Utilidades
Proteccin

Servidor de Archivos

2. Servidor de Archivos:

Estructura lgica
Eficiencia
Consistencia

Cach de Bloques

Servidor de Bloques

3. Servidor de Bloques:

Gestin de dispositivos
Cach y buffering

Dispositivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Visin externa del sistema de archivos


Usuarios y
Aplicaciones

Servicios lgicos
(archivos y directorios)
Servidor de Archivos
Cach de Bloques

Servidor de Bloques

Dispositivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Servidor de archivos
Para proporcionar un acceso eficiente y sencillo a los
dispositivos de almacenamiento, todos los sistemas operativos
tienen un servidor de archivos que permite almacenar, buscar y
leer datos fcilmente.
Dicho servidor de archivos tiene dos tipos de problemas de
diseo muy distintos entre s:
Definir la visin de usuario del sistema de entrada/salida,
incluyendo servicios, archivos, directorios, sistemas de
archivos, etc.
Definir los algoritmos y estructuras de datos a utilizar para
hacer corresponder la visin del usuario con el sistema
fsico de almacenamiento secundario.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

J. Carretero, F. Garca, P. de Miguel, F. Prez

Atributos del archivo


Nombre: la nica informacin en formato legible por una persona.
Identificacin nica del archivo y del usuario: descriptor interno del
archivo, dueo y grupo del archivo
Tipo de archivo: necesario en sistemas que proporciona distintos formatos de
archivos.
Tamao del archivo: nmero de bytes en el archivo, mximo tamao
posible, etc.
Proteccin: control de accesos y de las operaciones sobre archivos
Informacin temporal: de creacin, de acceso, de modificacin, etc.
Informacin de control: archivo oculto, de sistema, normal o directorio, etc.
Atributos extendidos:
Opciones especiales de escritura (append only)
Resource fork: Informacin para la aplicacin con la que se crea o se
manipula.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

10

J. Carretero, F. Garca, P. de Miguel, F. Prez

Concepto de directorio
Objeto que relaciona de forma unvoca un nombre de archivo
(dado por el usuario) con su descriptor interno
Organizan y proporcionan informacin sobre la estructuracin
de los sistemas de archivos
Una coleccin de listados que contienen informacin acerca de
los archivos
Es una unidad de organizacin que proporciona el SO. Por lo
tanto son datos con un formato que el propio SO utiliza para
localizar archivos.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

11

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorios: Visin lgica


Esquema jerrquico.
Operaciones sobre un directorio:
Crear (insertar) y borrar (eliminar) directorios.
Abrir y cerrar directorios.
Renombrar directorios.
Leer entradas de un directorio.
Montar (combinar)
Cuando se pide abrir un archivo el SO busca el nombre en la
estructura de dicho directorio.
La organizacin jerrquica de un directorio
Simplifica el nombrado de archivos (nombres nicos)
Proporciona una gestin de la distribucin => agrupar
archivos de forma lgica (mismo usuario, misma aplicacin)
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

12

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorios: estructura e implementacin


Tanto la estructura del directorio como los archivos residen en
discos
Los directorios se suelen implementar como archivos (que el
SO gestiona de forma particular)
Informacin en un directorio: nombre, tipo, direccin, longitud
mxima y actual, tiempos de acceso y modificacin, dueo, etc.
Hay estructuras de directorio muy distintas. La informacin
depende de esa estructura.
Dos alternativas principales:
Almacenar atributos de archivo en entrada directorio
Almacenar <nombre, identificador>, con datos archivo en
una estructura distinta. sta es mejor opcin.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

13

J. Carretero, F. Garca, P. de Miguel, F. Prez

Organizacin del directorio


Eficiencia: localizar un archivo rpidamente
Nombrado: conveniente y sencillo para los usuarios
Dos usuarios pueden tener el mismo nombre para archivos
distintos
Los mismos archivos pueden tener nombres distintos
Nombres de longitud variable
Agrupacin: agrupacin lgica de los archivos segn sus
propiedades (por ejemplo: programas Pascal, juegos, etc.)
Estructurado: operaciones claramente definidas y ocultacin
Sencillez: la entrada de directorio debe ser lo ms sencilla
posible.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

14

J. Carretero, F. Garca, P. de Miguel, F. Prez

Archivos: Semntica de coutilizacin


Cualquier forma de acceso tiene problemas cuando varios
usuarios trabajan con el archivo simultneamente.
Semntica de coutilizacin: especifica el efecto de varios
procesos accediendo de forma simultnea al mismo archivo y
cuando se hacen efectivas las modificaciones.
Tipos de semnticas:
Semntica UNIX (POSIX)
Las escrituras son inmediatamente visibles para todos los
procesos con el archivo abierto.
Los procesos pueden compartir archivos. Si existe relacin de
parentesco pueden compartir el puntero. La coutilizacin afecta
tambin a los metadatos.
Costoso computacionalmente. SO ha de secuenciar accesos.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

15

J. Carretero, F. Garca, P. de Miguel, F. Prez

Archivos: Semntica de coutilizacin (II)


Semntica de sesin
Las escrituras que hace un proceso no son inmediatamente visibles
para los dems procesos con el archivo abierto.
Cuando se cierra el archivo los cambios se hacen visibles para las
futuras sesiones.
Un archivo puede asociarse temporalmente a varias imgenes.
Se hace necesario sincronizar los procesos explicitamente.
Semntica de versiones
Las actualizaciones se hacen sobre copias con n versin.
Slo son visibles cuando se consolidan versiones.
Sincronizacin explcita si se requiere actualizacin inmediata.
Semntica de archivos inmutables
Una vez creado el archivo slo puede ser compartido para lectura y
no cambia nunca.
Implementado con tcnica tipo copy-on-write.
Atributo de lectura por bloque
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

16

J. Carretero, F. Garca, P. de Miguel, F. Prez

De la visin lgica a la organizacin fsica


Usuarios y
Aplicaciones

Servicios lgicos
(archivos y directorios)
la Estructura
Bloques de disco

Servidor de Archivos
Cach de Bloques

Servidor de Bloques

Dispositivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

17

J. Carretero, F. Garca, P. de Miguel, F. Prez

Gestin interna de archivos


Para dar soporte a la traduccin entre la visin ristra de bytes
y el almacenamiento real bloques de disco debe:
Haber una estructura (interna al SF) que represente qu
bloques de disco pertenecen a un archivo.
Esta estructura se tiene que almacenar (exactamente igual
que se almacenan los datos).
Asociada a esta estructura se guarda ms meta-informacin
del archivo.
ISO9660: Inicio y tamao (fichero contiguo)
SF MS-DOS: FAT (fichero enlazado)
SF UNIX: i-nodo (fichero indexado)
NTFS: Registro Windows (fichero indexado)
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

18

J. Carretero, F. Garca, P. de Miguel, F. Prez

Ficheros enlazados: MS-DOS (FAT)


FAT: File Allocation Table
Primer byte del nombre:
0x00 entrada libre
0xE5 entrada borrada
0x05 primer carcter es E5

FAT
Directorio Raz
Nombre
pep_dir

Atrib.
dir

fiche1.txt

Bytes Agrup.
5.724 27
12.103

27 <eof>

45
45

FAT de 12 bits 4K agrupaciones


FAT de 16 bits 64K agrupaciones
FAT de 32 bits 228 agrupaciones
(solo usa 28 bits)

Directorio pep_dir
Nombre
carta1.wp
prue.zip

Atributos: System, Hidden, Read-only,

Atrib.
R

Bytes Agrup.
2.422

74

16

91

58

51 <eof>
58 <eof>
74 75
75 76
76 <eof>
91 51

Archived next backed, Directory, Volume


Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

19

J. Carretero, F. Garca, P. de Miguel, F. Prez

Descripcin fsica en MS-DOS (FAT)


FAT de 32 bits
El tamao mximo del
volumen viene determinado
por el tamao de la
particin (tabla de
particiones en el boot) que
se almacena en una palabra
de 4B: 232x512 B
El tamao mximo de
fichero viene determinado
por el tamao incluido en el
directorio (palabra de 4 B).

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

20

J. Carretero, F. Garca, P. de Miguel, F. Prez

FAT valores de agrupacin

FAT12
0x000
0x001
0x002
0xFEF
0xFF0
0xFF6
0xFF7

FAT16
0x0000
0x0001
0x0002
0xFFEF
0xFFF0
0xFFF6
0xFFF7

FAT32
0x00000000
0x00000001
0x00000002
0x0FFFFFEF
0x0FFFFFF0
0x0FFFFFF6
0x0FFFFFF7

0xFF8
0xFFF

0xFFF8
0xFFFF

0x0FFFFFF8
0x0FFFFFFF

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

21

Descripcin
Agrupacin libre
Reservado, no se usa
Agrupacin utilizada; el valor apunta a la
siguiente agrupacin
Valor reservado, no se usa
Agrupacin con sector defectuoso o
agrupacin reservada
ltima agrupacin del fichero (EOC)

J. Carretero, F. Garca, P. de Miguel, F. Prez

Ficheros indexados: UNIX (i-nodo)


Bloques
de disco

Bloque
de i-nodos
Tipo y Proteccin
Nmero de enlaces
Propietario / Grupo
Tamao
Fecha: Creacin /Modificacin/Acceso
Puntero a datos 1
Puntero a datos 2

Bloque
con dir. de
bloques

Puntero
directo

Puntero
indirecto simple

Puntero a datos n
Puntero indirecto simple
Puntero indirecto doble
Puntero indirecto triple

Puntero
indirecto doble

i-nodo

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

22

Tamao tpico bloque 4 KB


Tamao tpico sector 512 B

J. Carretero, F. Garca, P. de Miguel, F. Prez

Ficheros indexados: Tamao mximo direccionable


Tipo de Fichero y Proteccin
Nmero de Nombres
Propietario
Grupo del Propietario
Tamao
Instante de creacin
Instante del ltimo acceso
Instante de la ltima modificacin
Puntero a bloque de datos 0
Puntero a bloque de datos 1

Tamao mximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb


Sb el tamao del bloque y direcciones de bloques de 4 bytes.

10 x Sb
Punteros
a Bloques
de Datos

Puntero a bloque de datos 9


Puntero indirecto simple
Puntero indirecto doble
Puntero indirecto triple

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

i-nodo

Sb: tamao de bloque


Dir. De bloque: 4 bytes
(Sb/4) x Sb
(Sb/4)2 x Sb

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

(Sb/4)3 x Sb
Punteros
a Bloques
de Datos

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

23

J. Carretero, F. Garca, P. de Miguel, F. Prez

rboles balanceados: Extents

Extent: conjunto contiguo de bloques


Interesante para grandes ficheros contiguos
Cabecera en el bloque para diferenciar
ndices de hojas (extents)
Se usa en NTFS y ext4
Extent del ext4 (96 bits):
Bloque fsico (48 bits)
Bloque lgico (32 bits)
Tamao del extent en bloques (15 bits)
En uso (1 bit)

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

24

J. Carretero, F. Garca, P. de Miguel, F. Prez

Jerarqua de directorios
Directorio plano: CP/M
rbol nico de directorios?
Por dispositivo lgico en Windows (c:\users\miguel\claves,
j:\pepe\tmp, ...)
Para todo el sistema en UNIX (/users/miguel/claves,
/pepe/tmp, ...).
Hacen falta servicios para construir la jerarqua: mount y
umount.
mount /dev/hda3 /users
umount /users

Ventajas: imagen nica del sistema y ocultan el tipo de


dispositivo
Desventajas: complican la traduccin de nombres, problemas
para enlaces fsicos entre archivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

25

J. Carretero, F. Garca, P. de Miguel, F. Prez

Directorios
Un directorio es un fichero con un
formato determinado
El contenido de un directorio es una
serie de entradas (registros), una por
cada fichero contenido en l.

Directorio FAT
Nombre

Atributos

Tipo de
Fichero

Hora
Fecha

Tamao

Nmero del
Primer Bloque
Reservado

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

26

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura fsica del directorio


Tabla contigua con entradas de tamao fijo
Falta de flexibilidad
Bsqueda lenta en grandes directorios
Lista encadenada (entradas de tamao variable)
Bsqueda lenta en grandes directorios
HTree (BTree con hashes de 32 bits)
Bsqueda rpida en grandes directorios

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

27

J. Carretero, F. Garca, P. de Miguel, F. Prez

Interpretacin de nombres en UNIX

Interpretar /users/luis/claves
[1] Traer a memoria entradas archivo con i-nodo 2
[2] Se busca dentro users y se obtiene el i-nodo 342
[3] Traer a memoria entradas archivo con i-nodo 342
[4] Se busca dentro luis y se obtiene el i-nodo 256
[5] Traer a memoria entradas archivo con i-nodo 256
[6] Se busca dentro claves y se obtiene el i-nodo 758
[7] Se lee el i-nodo 758 y ya se tienen dnde estn los datos del archivo
[8] Leer los bloques del fichero

Cundo parar?
No se tienen permisos
Se ha encontrado el i-nodo del archivo
No se ha encontrado y no hay ms subdirectorios
Estamos en un directorio y no contiene la siguiente componente del
nombre (por ejemplo, miguel).

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

28

J. Carretero, F. Garca, P. de Miguel, F. Prez

Interpretacin de nombres en UNIX (II)


Bloques
de disco

dir
r-x
890

dir
r-x
7022

i-nodo 2 i-nodo 256

[1]

[5]

dir
rwx
14056

i-nodo 342

file
rw23011

i-nodo 758

[7]

[3]

.
342
..
2
gema 430
luis 256

.
2
..
2
tmp 43
users 342

Bloque
890

[2]

Bloque
14056

.
..
claves
textos

256
342
758
3265

[4]

Bloque
23011

[8]

Bloque
7022

[6]

/users/luis/claves
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

29

J. Carretero, F. Garca, P. de Miguel, F. Prez

Interpretacin de nombres en UNIX (y III)


MUY IMPORTANTE:
Un directorio no es un i-nodo
i-nodo del directorio
dir
r-x
7022

Bloque de datos
del directorio
.
..
claves
textos

i-nodo 256

Directorio

Bloque de datos
del archivo

i-nodo del archivo

256
342
758
3265

file
rw23011

Bloque
7022

Bloque
23011

i-nodo 758

Archivo

La llamada OPEN termina con la lectura del i-nodo


La verificacin de permisos se hace con los datos del i-nodo
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

30

J. Carretero, F. Garca, P. de Miguel, F. Prez

Enlaces
link: Un archivo con varios nombres -> control de enlaces
un nico archivo con contador enlaces en descriptor (e. Fsicos)
archivos nuevos con el nombre destino dentro (e. simblicos)
Borrado de enlaces:
a) decrementar contador; si 0 borrar archivo
b) recorrer los enlaces y borrar todos
c) borrar nicamente el enlace y dejar los dems
Problema grave: existencia de bucles en el rbol. Soluciones:
Permitir slo enlaces a archivos, no subdirectorios
Algoritmo de bsqueda de bucle cuando se hace un enlace
Limitacin de implementacin en UNIX: slo enlaces fsicos dentro del
mismo sistema de archivos.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

31

J. Carretero, F. Garca, P. de Miguel, F. Prez

Enlaces (y II)
/

usr

user

lib

pedro

luis
dat.txt

progr.c

luis

.
..

dat.txt
progr.c

usr

pru.txt

.
..

pru.txt

pedro

luis
dat.txt

pedro
23
100
28
400

user

lib

progr.c

luis

.
..

80
100
60

dat.txt
progr.c

pru.txt

dat2.txt

pedro
23
100
28
400

.
..

pru.txt
dat2.txt

80
100
60
28

nodo-i 28
enlaces = 2
descripcin
del fichero

Enlace fsico
luis

.
..

dat.txt
progr.c

luis

pedro
23
100
28
400

.
..

pru.txt

.
..

80
100
60

dat.txt
progr.c

.
..

pru.txt
dat2.txt

80
100
60
130

nodo-i 130
enlaces = 1
/user/luis/
dat.txt
nodo-i 28
enlaces = 1
descripcin
del fichero

Enlace simblico
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

pedro
23
100
28
400

32

J. Carretero, F. Garca, P. de Miguel, F. Prez

Gestin de un sistema de archivos


Servidor de Archivos
1. Los ficheros regulares
Lgica del
Manejador
tienen que almacenar sus
Sistema de
datos y metadatos en soporte del Sistema
Archivos
de
Archivos
fsico.
2. La visin de los ficheros en
info. ejecucin
datos
uso requiere:
metadatos

Esos datos y metadatos.


Informacin de ejecucin.
Toda la lgica de gestin.

3. Se puede diferenciar entre:

Interfaz del SrvArch hacia al


usuario
Interaccin con los
dispositivos.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

Layout

del Sistema
de Archivos

metadatos

datos

Dispositivo
33

J. Carretero, F. Garca, P. de Miguel, F. Prez

VFS: Virtual file system


Llamadas al
Sistema

SO

proceso

proceso

proceso

proceso

.....

proceso

Servidor de Archivos VFS


ext4

vfat

NFS

proc

Red

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

34

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos virtuales


Sistema de Archivos Virtual (VFS: Virtual File System):
Interfaz de llamadas de entrada/salida del sistema (hacia el exterior)
Mdulo de organizacin de archivos (internamente)
Servicios:
Gestin de nombres (e.g.: link)
Algunos servicios de seguridad (e.g: chmod)
Integracin dentro del SrvArch de distintos tipos de sistemas de archivos
(registro)
Servicios genricos de archivos y directorios (e.g: read, creat,
mkdir)
Nodo virtual (v-nodo):
Estructura de informacin
Comn a todos los sistemas de archivos subyacentes
Enlaza con un descriptor de archivo de cada tipo particular.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

35

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura de un nodo virtual de UNIX


v-nodo

v-nodo: Estructura en memoria del VFS


que gestiona las estructuras de fichero para
cualquier sistema de archivos.

Informacin
del fichero
virtual

Superclase de todos los tipos posibles de inodos.

Direcciones de
las operaciones
virtuales

Cuando se hace referencia a un archivo se


usa una estructura de este tipo, compuesta
por:
El i-nodo del soporte fsico o
equivalente.
Variables de gestin (semforos,
contadores, colas).

Direccin del
i-nodo
especfico

(del layout)

i-nodo

Direcciones de
las operaciones
especficas de SA

(del manejador)

Referencia al dispositivo de bloque


que lo soporta.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

ext2fs

Tabla de
funciones
del SA
36

J. Carretero, F. Garca, P. de Miguel, F. Prez

VFS
Proporciona el modelo de archivo y sus servicios:
Algoritmos: Imagen lgica del fichero imagen fsica.
Gestin: Espacio de los sistemas de archivo, asignacin de bloques a
archivos y el manejo de los descriptores de archivos (i-nodos de UNIX o
registros de Windows NT).
Soporte: A cada tipo de Sistema de Archivos (ext2fs, ntfs, hpfs, ...).

proceso

Servidor de Archivos VFS


v-nodo

ext4
i-nodo

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

37

<func>
<func>

<func>
<func>
<func>

Funciones
genricas
Funciones
especficas

J. Carretero, F. Garca, P. de Miguel, F. Prez

VFS: Registro de un nuevo tipo sistema de archivos

Un nuevo sistema de archivos consiste en un conjunto de subrutinas especficas a


implementar:
Obtener / escribir i-nodo
Crear / renombrar / eliminar directorios
Crear / borrar entradas en los directorios
Operaciones sobre archivos
....
Se crea una estructura con estas rutinas y se registra:
register_filesystem(struct file_system_type*);
Una de las operaciones registradas es la de montaje.

file_systems

file_system_type
*read_super()
name
ext2"
requieres_dev s
next

file_system_type
*read_super()
name
proc
requieres_dev no
next

file_system_type
*read_super()
name
iso9660"
requieres_dev s
next

por ejemplo, /proc no necesita dispositivo

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

38

J. Carretero, F. Garca, P. de Miguel, F. Prez

Operaciones sobre el SA: Montaje


El montaje proyectar la estructura jerrquica de un sistema de
archivos sobre un directorio (punto de montaje) del rbol de
directorios del sistema.
# mount t ext2 /dev/hdb1 /mnt
# mount
/dev/hdb1
/mnt type ext2(rw)

/mnt

SYS_MOUNT(dir,tipo,dev) {
fst = Se busca el file_system_type asociado a tipo;
dev = Dispositivo dev;
IDE:1,1
sb = fst->read_super(dev); /* Se lee el super-bloque (si falla ret error)*/
v_root = sb->get_root_dir(); /* Se obtiene el directorio raz del nuevo SF */
v_nod = v-nodo asociado al directorio dir;
v_nod->d_mount=v_root;
/* Se indica que este directorio est sobrescrito por un nuevo dir. */
}
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

39

J. Carretero, F. Garca, P. de Miguel, F. Prez

Operaciones sobre el SA: Montaje


mount t ext2 /dev/hdb1 /mnt

mount t vfat /dev/hdc2 /mnt

v-nodo (/mnt)

v-nodo (/mnt)

v-nodo (/mnt)

d_mount

d_mount

d_mount

d_mount

d_mount

d_mount
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

40

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructuras de datos asociadas al S. de A. (I)


Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus
descriptores temporales y el valor del apuntador de posicin del archivo para
ese proceso.
El tamao de esta tabla define el mximo nmero de archivos que cada
proceso puede tener abierto de forma simultnea.
El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena
de forma ordenada, de forma que siempre se ocupa la primera posicin
libre de la tabla.
En los sistemas UNIX cada proceso tiene tres descriptores de archivos
abiertos por defecto: entrada estndar, fd = 0, salida estndar, fd =
1, error estndar, fd = 2.
BCP
fd 0
1
2
3

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

41

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructuras de datos asociadas al S. de A. (II)


Tabla de v-nodos: Almacena en memoria informacin del i-nodo
(i) que existente en el disco y (ii) la que se usa dinmicamente (slo
tiene sentido cuando el archivo est en uso [e.g. cerrojos]).
Problema: si slo hay un campo de apuntador, cada operacin
de un proceso afectara a todos los dems.
Posible solucin: incluir la informacin relativa al archivo
dentro del bloque de descripcin del proceso (BCP).
Tabla intermedia v-nodo-posicin: entre la tabla de archivos del
BCP y la tabla de v-nodos. Dicha tabla incluye, entre otras cosas:
La entrada del v-nodo del archivo abierto en la tabla de v-nodos.
El apuntador de posicin correspondiente al proceso, o procesos,
que usan el archivo durante esa sesin.
El modo de apertura del archivo
File operations
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

42

v_nodo
n_open
operations

i-nodo

open_file
open_file
open_file
n_dup
offset
operations
RW
open_file

J. Carretero, F. Garca, P. de Miguel, F. Prez

Operaciones sobre el SA: OPEN


Cada proceso dispone (dentro de su BCP) de una tabla de
descriptores de archivos abiertos (fd).
SYS_OPEN (path) {
BCP
fd[i] = Busca el primer descriptor de archivo libre;
fd 0
fd[i]->file = Crea una nueva entrada open_file;
1
2
v_nod = Busca el v_nodo asociado a path;
3
if(!existe(v_nod)) {
File
v_nod=crear open_file;
operations
v_nod->i_node=sb->read_inode();
read: <func>
/* Se lee el i-nodo, o equivalente, del
write: <func>
dispositivo y se carga en el v-nodo. */ }
open: NULL
i_node
fd[i]->file->v_nodo=v_nod; /* Apunta al v-nodo */
operations
fd[i]->file->offset=0;
create: <func>
fd[i]->file->n_dup=1;
unlink: <func>
if(fd[i]->file->open!=NULL) *(fd[i]-> file->open)();
read_page: <func>
follow_link: <func>
}
n_opens se pone a 1 o s ya existe el v_node se incrementa
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

43

open_file
open_file
open_file
n_dup
offset
operations
RW
open_file
v_nodo
n_open
operations

i-nodo

J. Carretero, F. Garca, P. de Miguel, F. Prez

Operaciones sobre el SA: FORK


Qu ocurre cuando se hace un FORK con los descriptores abiertos.
FORK

Proceso padre e hijo comparten


la posicin (offset) de acceso al
archivo.

BCP

BCP

fd 0
1
2
3

foreach (fd[i] = Descriptor de fichero no libre)


{
fd[i]->file->n_dup++;
}

open_file
open_file
open_file

v_nodo
n_open
operations

0 fd
1
2
3

n_dup
offset
operations

open_file

i-nodo
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

44

J. Carretero, F. Garca, P. de Miguel, F. Prez

Operaciones sobre el SA: READ/WRITE


Cualquiera de las dos operaciones hace que el offset avance.
SYS_READ/SYS_WRITE (i,data,size) {
Comprueba si el modo de acceso es vlido;
Verifica la existencia de cerrojos;
f=fd[i]->file;
if(EsWrite) {
Obtener(f->v_nodo->semaphore);
/* Evita que dos procesos escriban a la vez
en el fichero (o hagan flush). */
n=f->write(data, f->offset, size);
Liberar(f->v_nodo->semaphore);
}
else
n=f->read(data, f->offset,size);
f->offset+=n;
}
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

45

BCP

File
operations
read:
write:
open:

open_file
open_file
open_file

fd 0
1
2
3

<func>
<func>
NULL

create:
unlink:
read_page:
follow_link:

n_dup
offset
operations
RW
i_node
operations
<func>
<func>
<func>
<func>

open_file
v_nodo
n_open
operations

i-nodo

J. Carretero, F. Garca, P. de Miguel, F. Prez

Acceso a los dispositivos de bloque


Usuarios y
Aplicaciones

Servidor de Archivos
Bloques de disco
Cach de Bloques

el Almacenamiento

Servidor de Bloques

Acceso a dispositivos
de bloques

Dispositivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

46

J. Carretero, F. Garca, P. de Miguel, F. Prez

Servidor de bloques
Un servidor de bloques proporciona servicio a:
Servidor de Archivos: Bloques de datos de los archivos
Servidor de Memoria:
Proyeccin de ficheros en memoria (carga de ejecutables)
Gestin de swap/fallos de pgina

Servidor de Memoria

Servidor de Archivos

Cach de Bloques

Servidor de Bloques
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

47

J. Carretero, F. Garca, P. de Miguel, F. Prez

Servidor de bloques
Se encarga de emitir los mandatos genricos para leer y escribir
bloques a los manejadores de dispositivo.
La E/S de bloques de archivo, y sus posibles optimizaciones, se
llevan a cabo en este nivel del servidor de archivos.
Las operaciones se traducen a llamadas de los manejadores de
cada tipo de dispositivo especfico y se pasan al nivel inferior
del sistema de archivos.
Esta capa oculta los distintos tipos de dispositivos, usando
nombres lgicos para los mismos. Por ejemplo, /dev/hda3
ser un dispositivo de tipo hard disk (hd), cuyo nombre
principal es a y en el cual se trabaja sobre su particin 3.
Los mecanismos de optimizacin de la E/S, como la cache de
bloques, se incluye en este nivel.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

48

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones


El sistema de archivos permite organizar la informacin dentro de los
dispositivos de almacenamiento secundario en un formato inteligible para el
sistema operativo.
Previamente a la instalacin del sistema de archivos es necesario dividir
fsicamente, o lgicamente, los discos en particiones o volmenes [Pinkert
1989].
Una particin es una porcin de un disco a la que se la dota de una
identidad propia y que puede ser manipulada por el sistema operativo como
una entidad lgica independiente.
Una vez creadas las particiones, el sistema operativo debe crear las
estructuras de los sistemas de archivos dentro de esas particiones. Para ello se
proporcionan mandatos como format o mkfs al usuario.
#mkswap c /dev/hda2 20800
#mkfs -c /dev/hda3 b 8196 123100
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

49

J. Carretero, F. Garca, P. de Miguel, F. Prez

Master Boot Record (MBR)


Es el primer sector del disco
El mismo para casi todos los sistemas operativos
Offset

Descripcin

Tamao

000h

Executable Code (Boots Computer)

446 Bytes

1Beh

1st Partition Entry

16 Bytes

1Ceh

2nd Partition Entry

16 Bytes

1Deh

3rd Partition Entry

16 Bytes

1Eeh

4th Partition Entry

16 Bytes

1Feh

Boot Record Signature (55h AAh)

2 Bytes

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

50

J. Carretero, F. Garca, P. de Miguel, F. Prez

Partition Entry
Offset Descripcin
Tamao
00h
Current State of Partition (00h=Inactive, 80h=Active) 1 Byte
01h
02h

Beginning of Partition - Head


Beginning of Partition - Cylinder/Sector

1 Byte
1 Word

04h
05h
06h
08h

Type of Partition
End of Partition - Head
End of Partition - Cylinder/Sector
Number of Sectors Between the MBR and the First
Sector in the Partition
Number of Sectors in the Partition

1 Byte
1 Byte
1 Word
1 Double
Word
1 Double
Word

0Ch

Tipos de particin: Fat-12, Fat-16, Fat-32, XENIX, NTFS, AIX, Linux,


MINIX, BSD ...
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

51

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones (II)


Sistema de archivos: conjunto coherente de metainformacin y datos.
Denominado Layout del sistema de ficheros
Ejemplos de Sistemas de archivos:
Dir.
Raz

Datos y directorios

Boot

FS
FAT FAT
info

Datos y directorios

UNIX

Boot

Super Bit
i-nodos
Blq. maps

Datos y directorios

NTFS

Boot

Super Bit
Blq. maps

Desc.
fsicos

Datos y directorios

FAT12 y 16

Boot FAT FAT

FAT32

MBR Tabla de Particiones


Cilindro de Comienzo

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

52

Tamao

Tipo

J. Carretero, F. Garca, P. de Miguel, F. Prez

Sistemas de archivos y particiones (y III)


Descripcin del layout de un sistemas de archivos:
El sector de arranque en MS-DOS
El superbloque en UNIX
Relacin sistema de archivos-dispositivo:
Tpico: 1 dispositivo N sistemas de archivos (particiones)
Grandes archivos: N dispositivos 1 sistema de archivos
Tpicamente cada dispositivo se divide en una o ms particiones
(en cada particin sistema de archivos)
La tabla de particiones indica el principio, el tamao y el tipo de
cada particin.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

53

J. Carretero, F. Garca, P. de Miguel, F. Prez

Bloques y agrupaciones
Bloque: agrupacin lgica de sectores de disco y es la unidad
de transferencia mnima que usa el sistema de archivos.
Optimizar la eficiencia de la entrada/salida de los
dispositivos secundarios de almacenamiento.
Todos los sistemas operativos proporcionan un tamao de
bloque por defecto.
Los usuarios pueden definir el tamao de bloque a usar
dentro de un sistema de archivos mediante el mandato mkfs.
Agrupacin: conjunto de bloques que se gestionan como una
unidad lgica de gestin del almacenamiento.
El problema que introducen las agrupaciones, y los bloques
grandes, es la existencia de fragmentacin interna.
Unidad de asignacin. Puede ser 1 agrupacin=1 bloque
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

54

J. Carretero, F. Garca, P. de Miguel, F. Prez

100 %

800

75

500
50
100

uso del
disco

ancho de
banda

50

25
0

0
256

512

1K

2K

4K

8K

16K

32K

Tamao de Bloque

Al aumentar el tamao del bloque:


Aumenta el ancho de banda efectivo del disco
Disminuye el uso efectivo del espacio del disco

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

55

J. Carretero, F. Garca, P. de Miguel, F. Prez

Uso del Espacio de D isco

Ancho de Banda (K bytes/sec)

Tamao bloque, ancho banda y uso disco

Gestin del superbloque


El superbloque describe el layout

Union
La informacin en memoria que se
guarda de cada superbloque es la que
contiene las funciones registradas para
el sistema de archivos:
struct super_operations* s_op;

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

56

J. Carretero, F. Garca, P. de Miguel, F. Prez

Manejadores de dispositivos
Un manejador por cada dispositivo, o clase de dispositivo, del
sistema.
Su funcin principal es recibir ordenes de E/S de alto nivel, tal
como move_to_block 234, y traducirlas al formato que
entiende el controlador del dispositivo, que es dependiente de su
hardware.
El manejador de dispositivos funciona en modo asncrono. Se le
piden datos a leer/escribir y responde a posteriori con la
operacin finalizada.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

57

J. Carretero, F. Garca, P. de Miguel, F. Prez

Flujo de datos en el SA
read (fd, buffer, tamao)
buffer

Usuario

tamao
arc hivo lgic o
(VFS)
arc hivo lgic o
(FFS)

bloques del
archivo

Bloques lgic os
(Servidor
de bloques)

1340

1756

840

8322

bloques del
dispositivo

1340
Manejador de
disco y
dispositivo

1756
bloques del
disco

840
8322

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

58

J. Carretero, F. Garca, P. de Miguel, F. Prez

Correspondencia bloques-archivos
Cmo asignar los bloques de disco a un archivo y cmo hacerlos
corresponder con la imagen del archivo que tiene la aplicacin?
Asignacin de bloques contiguos.
Sencillo de implementar y el rendimiento de la E/S es muy bueno.
Si no se conoce el tamao total del archivo cuando se crea, puede ser necesario
buscar un nuevo hueco de bloques consecutivos cada vez que el archivo crece.
Fragmentacin externa -> compactar el disco.

Asignacin de bloques discontiguos.


Se asigna al archivo el primer bloque que se encuentra libre.
No hay fragmentacin externa del disco ni bsqueda de huecos.
Los archivos pueden crecer mientras exista espacio en el disco.
Complica la implementacin de la imagen de archivo -> mapa de bloques
del archivo.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

59

J. Carretero, F. Garca, P. de Miguel, F. Prez

Gestin de espacio libre


Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de
archivo, bloque o agrupacin). Si el recurso est libre, el valor del bit
asociado al mismo es 1, si est ocupado es 0.
Ejemplo, sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 estn ocupados y el
resto libres, y en el que los descriptores de archivo 2, 3 y 4 estn ocupados. Sus
mapas de bits de seran:
MB de bloques:
1100011100011.... M
MB de descriptores: 1100011...
Fcil de implementar y sencillo de usar. Eficiente si el dispositivo no est muy
lleno o muy fragmentado.

Listas de recursos libres: mantener enlazados en una lista todos los


recursos disponibles (bloques o descriptores de archivos) manteniendo
un apuntador al primer elemento de la lista.
Este mtodo no es eficiente, excepto para dispositivos muy llenos y
fragmentados
Uso de agrupaciones.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

60

J. Carretero, F. Garca, P. de Miguel, F. Prez

Gestin de bitmaps
Los bitmaps se almacenan en todo tiempo en memoria y para cada operacin
se sincronizan con el disco.
Representa de forma comprimida el estado de ocupacin
Se usan por parte de los algoritmos de asignacin

Bitmap
de i-nodos

Bloque
de i-nodos
Bitmap
de datos

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

61

file
rw23011

i-nodo

Bloque
de datos

J. Carretero, F. Garca, P. de Miguel, F. Prez

Ejemplo de listas de recursos

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Bloques libres

Bloques libres

7,1

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

11

14

16

11,1 14,1

62

18

17
16,3

(A)
(B)

J. Carretero, F. Garca, P. de Miguel, F. Prez

Incremento de prestaciones
Basados en el uso de almacenamiento intermedio de datos de entrada/salida
en memoria principal. Estos mecanismos son de dos tipos:
Discos RAM: sus datos estn almacenados slo en memoria principal.
Aceptan todas las operaciones de cualquier otro sistema de archivos y
son gestionados por el usuario.
Pseudodispositivos para almacenamiento temporal o para operaciones
auxiliares del sistema operativo. Su contenido es voltil.
Cache de datos, instaladas en secciones de memoria principal
controladas por el sistema operativo, donde se almacenan datos para
optimizar accesos posteriores.
Se basan en la existencia de proximidad espacial y temporal en las
referencias a los datos de entrada/salida.
Dos caches importantes dentro del servidor de archivos: cache de
nombres y cache de bloques.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

63

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cache de bloques
Fundamento:
Proximidad espacial
Proximidad temporal
Dos clases de flujos de E/S:
Usan una sola vez cada bloque
Usan repetidamente los bloques

Acceso a disco mucho ms lento que el acceso a memoria

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

64

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cache de bloques (II)


Estructura de datos en memoria con los bloques ms
frecuentemente utilizados
Proceso

Proceso

Cache

Cache

Disco

Disco

Lecturas adelantadas (acceso secuencial)


Limpieza de la cache (sync)
Principal problema: fiabilidad del sistema de archivos.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

65

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cache de bloques de dispositivo


Proceso

Mem. principal
Mapa
memoria

buffer

Usuario
posicin
2

Bloques de fichero

1340 1756

Bloques de dispositivo
Cache de bloques

buffer

tamao
4

840

8322

d;1340 d;840
840

Manejador de disco

bloq. fich. (VFS)

Bloq. fich.

bloq. disp. (Sist. fich.)

Bloq. disp.

cache (Serv. bloq.)

d;1756 d;8322

Mem. principal

1756

1340

8322

Disco

SO
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

66

J. Carretero, F. Garca, P. de Miguel, F. Prez

Cache de bloques de sistema de fichero


Proceso

Mem. principal
Mapa
memoria

buffer

Usuario
posicin
Bloques de fichero
Cache de bloques
Bloques de dispositivo

buffer

tamao
2

sf;vn;2 sf;vn;4
1340 1756
840

Manejador de disco

bloq. fich. (VFS)

Bloq. fich.

sf;vn;3 sf;vn;5
Bloq. fich.
840

cache (Serv. bloq.)


Mem. principal
bloq. disp. (Sist. fich.)

8322

1756

1340

8322

Disco

SO
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

67

J. Carretero, F. Garca, P. de Miguel, F. Prez

Polticas de reemplazo
Algoritmo:
Comprobar si el bloque a leer est en la cache.
En caso de que no est, se lee del dispositivo y se copia a la cache.
Si la cache est llena, es necesario hacer hueco para el nuevo bloque
reemplazando uno de los existentes: polticas de reemplazo.
Si el bloque ha sido escrito (sucio): poltica de escritura.
Polticas de reemplazo: FIFO (First in First Out), segunda oportunidad, MRU
(Most Recently Used), LRU (Least Recently Used), etc.
La poltica de reemplazo ms frecuentemente usada es la LRU. Esta poltica
reemplaza el bloque que lleva ms tiempo sin ser usado, asumiendo que no ser
referenciado prximamente.
Los bloques ms usados tienden a estar siempre en la cache y, por tanto, no van al
disco. La utilizacin estricta de esta poltica puede crear problemas de fiabilidad
en el sistema de archivos si el computador falla.
La mayora de los servidores de archivos distinguen entre bloques especiales y
bloques de datos.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

68

J. Carretero, F. Garca, P. de Miguel, F. Prez

Polticas de escritura
Escritura inmediata (write-through): se escribe cada vez que se modifica el
bloque.
No hay problema de fiabilidad, pero se reduce el rendimiento del sistema.
Escritura diferida (write-back): slo se escriben los datos a disco cuando se
eligen para su reemplazo por falta de espacio en la cache.
Optimiza el rendimiento, pero genera los problemas de fiabilidad
anteriormente descritos.
Escritura retrasada (delayed-write), que consiste en escribir a disco los bloques
de datos modificados en la cache de forma peridica cada cierto tiempo (30
segundos en UNIX).
Compromiso entre rendimiento y fiabilidad.
Reduce la extensin de los posibles daos por prdida de datos.
Los bloques especiales se escriben inmediatamente al disco.
No se puede quitar un disco del sistema sin antes volcar los datos de la cache.
Escritura al cierre (write-on-close): cuando se cierra un archivo, se vuelcan al
disco los bloques del mismo que tienen datos actualizados.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

69

J. Carretero, F. Garca, P. de Miguel, F. Prez

Extensiones de los sistemas de archivos


Usuarios y
Aplicaciones

Servidor de Archivos

S.A. especielizados:
FFS (e.g.: ext2fs)
Archivos pequeos.

Cach de Bloques

Modelos no basados en
directorios

Servidor de Bloques

Elementos especiales:
Redundancia
Recuperacin (journaling)
Data Streams (Windows)

Dispositivos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

70

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estructura del FFS


Habitualmente en el acceso a un archivo hay que acceder a dos
partes del disco:
Entrada del descriptor (i-nodo).
Bloques de datos.
Por cuestiones de eficiencia se considera ms apropiado hacer
que todos estos accesos se realicen sobre zonas prximas dentro
del disco.
Solucin: Intercalar bloques de i-nodos con sus bloques de datos
relacionados.
Implementaciones: Extended 2 Filesystem (ext2), ext3 y ext4

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

71

J. Carretero, F. Garca, P. de Miguel, F. Prez

Grupos y metabloques
Descriptor de grupo: Direcciones de los bitmaps de bloques y nodos_i
El superbloque se replica en cada grupo
Boot

Super Descrip. Grupo de bloques 1


bloque grupos

Bitmap
bloques

Bitmap
nodos_i

Tabla
nodos_i

Grupo de bloques 2

Super
bloque

Grupo de bloques n

Bloques de datos

Grupos de bloques

Boot

Super Metabloque de grupos 1 Metabloque de grupos 2


bloque

Descrip. Grupo de bloques 1


grupos

Bitmap
bloques

Bitmap
nodos_i

Tabla
nodos_i

Metabloque de grupos p

Grupo de bloques n

Grupo de bloques 2

Super
bloque

Bloques de datos

Metabloques de grupos
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

72

J. Carretero, F. Garca, P. de Miguel, F. Prez

Gestin de archivos de pequeo tamao


En los sistemas UNIX existen multitud de archivos de menos de
100 bytes de tamao. En algunas instalaciones (news servers)
muchos ms.
La utilizacin de un bloque de datos entero provoca
fragmentacin (perdida de espacio aprox. 6%)
Soluciones:
Incluir parte de los archivos en el propio i-nodo (los primeros
bytes): [e.g. XFS]
Usar bloques de datos que compacten varios archivos (o
finales de archivos mayores) [ReiserFS].

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

73

J. Carretero, F. Garca, P. de Miguel, F. Prez

Alternativas de diseo
Layout XFS

Layout ReiserFS

offset
Bloque #1
Bloque #2

Contenido
del Fichero
(<128 bytes)

offset
Bloque #1

i-nodo

i-nodo
i-nodo
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

74

J. Carretero, F. Garca, P. de Miguel, F. Prez

Fiabilidad del sistema de archivos


Fallos HW y SW pueden provocar fallos en un volumen
Soluciones:
Hardware:
Controladores que tratan con sectores con fallos
Discos con informacin redundante (RAID)
Backups (copias de respaldo)
En discos

En cintas
Backups incrementales

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

75

J. Carretero, F. Garca, P. de Miguel, F. Prez

Redundancia con paridad

0 4 ...

1 2 ...

1 3 ...

3-5

...

1 5 ...

1 2 ...

1 4 ...

1 3 ...

2 6 ...

1 2 ...

2 5 ...

2 4 ...

3 7 ...

1 2 ...

0-2 3-5

RAID 0
(Stripe)

RAID 1
(Mirroring)

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

...

0-2

5 ...

RAID 4
RAID 5
(Parity disk) (Parity blocks)

76

Sistema de discos
redundantes
RAID:
[0] Sin
redundancia.
[1] Copia de la
informacin
(discos espejo).
[4] Un disco con
paridades.
[5] Los bloques
de paridades se
distribuyen entre
los discos

J. Carretero, F. Garca, P. de Miguel, F. Prez

Consistencia del sistema de archivos (I)

Dos aspectos importantes:


Comprobar que la estructura fsica del sistema de archivos es coherente.
Verificar que la estructura lgica del sistema de archivos es correcta.
Estrucutra fsica: se comprueba la superficie del dispositivo de
almacenamiento.
Estructura lgica:
1. Se comprueba que el contenido del superbloque responde a las
caractersticas del sistema de archivos.
2. Se comprueba que los mapas de bits de i-nodos se corresponden con los
i-nodos ocupados en el sistema de archivos.
3. Se comprueba que los mapas de bits de bloques se corresponden con los
bloques asignados a archivos.
4. Se comprueba que ningn bloque est asignado a ms de un archivo.
5. Se comprueba el sistema de directorios del sistema de archivos, para ver
que un mismo i-nodo no est asignado a ms de un directorio.

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

77

J. Carretero, F. Garca, P. de Miguel, F. Prez

Consistencia del sistema de archivos (II)


Consistencia sobre archivos:
Contador de enlaces > contador real
Contador de enlaces < contador real
Nmero de i-nodo > Nmero total de i-nodos
Archivos con bits de proteccin 0007
Archivos con privilegios en directorios de usuario
UNIX y LINUX: fsck
fsck /dev/dsk/c0t0d3s1
Comprueba el dispositivo fsico c0t0d3s1

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

78

J. Carretero, F. Garca, P. de Miguel, F. Prez

Estado de los bloques


Nmero de bloque
012 3
1 01 0
012 3
0 10 1

n
0

n
1

Nmero de bloque
Referencias

012 3
1 00 0

Libres

012 3
0 10 1

CASO 1

Referencias

n
1

Libres

Se deja libre

Nmero de bloque

012 3
0 10 1

n
0

CASO 2

Correcto
012 3
1 02 0

n
0

n
1

Nmero de bloque
Referencias

012 3
1 01 0

Libres

012 3
0 11 1

CASO 3

n
0

Referencias

n
1

Libres

CASO 4

ste es el peor caso


Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

Se deja ocupado
79

J. Carretero, F. Garca, P. de Miguel, F. Prez

Journaling
Para evitar la verificacin (fsck) de sistemas de ficheros de gran
tamao, que sera muy costosa, se implementa un modelo de
control transaccional basado en logging:
Toda suboperacin que modifique los metadatos y datos de
un archivo se agrupa en la misma transaccin.
Si el sistema falla, las acciones parcialmente realizadas se
deshacen o completan. Recorriendo el log.
No se garantiza que el sistema est actualizado al finalizar la
recuperacin, sino que es consistente.
Sistemas con esta filosofa son: JFS (IBM), ext3fs y la gran
mayora de sistemas de archivos modernos.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

80

J. Carretero, F. Garca, P. de Miguel, F. Prez

Journaling
Cada operacin se programa asi:

Por cada sub-operacin que altera las


estructuras de disco se escribe un
registro en el log:
1.Registro log.
2.Buffer de i-nodos.
3.Buffer de bloques.
Cuando se ha copiado a disco (log) el
registro de commit, se empiezan a
procesar los buffers.
Despus de una cada:
Se completan las transacciones
commited.
Se descartan el resto de
transacciones.
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

TxBegin(&tid);
/* ...
Sub-operaciones
... */
TxCommit(tid);
TxEnd(tid);
Por lo general es un archivo especial dentro del S.A.

Super
block

81

Log

i-nodos y bloques de datos

J. Carretero, F. Garca, P. de Miguel, F. Prez

Atributos extendidos
Alternated Data Streams (ADS) en NTFS
Resource forks en Mac
Extensiones a los archivos normales. Pensadas para contener datos
adicionales:
Informacin de la aplicacin que lo crea/usa.
Visin reducida de una imagen, etc.
En NTFS no tienen limitacin de espacio.
Causa problemas de cara a virus y gusanos.
Invisible a las herramientas estndar del SSOO.
stuff

a.txt
b.txt

type a.txt > b.txt:oculto.txt


del a.txt

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

82

stuff

b.txt:oculto.txt

b.txt

J. Carretero, F. Garca, P. de Miguel, F. Prez

Modelos de organizacin no basados en directorios


Los archivos de datos
se organizan
jerrquicamente en
Directorios
estructuras que el SO
gestiona (directorios).
Los directorios son archivos especiales del SO
Archivos de datos

Modelos basados en estructuras jerrquicas (directorios)


Modelos basados motores de bsqueda
Motor de bsqueda

Consulta

Sistemas operativos: una visin aplicada


Versin seleccionada y ampliada por J.M. Pea

Resultado

83

Los archivos se almacenan en


una estructura de uso interno
del SO.
La bsqueda de archivos se
hace por medio de un motor de
bsqueda y de valores y
caractersticas de los archivos
J. Carretero, F. Garca, P. de Miguel, F. Prez

Modelos de organizacin no basados en directorios


Los archivos se guardan internamente por medio de una
estructura que gestiona el SO
El usuario busca los archivos en base a sus caractersticas:
Palabras clave
Contenidos
Informacin de contexto
Es necesario etiquetar los archivos, dando valor a los parmetros
que luego se usarn en la bsqueda.
El sistema de archivos se convierte en una base de datos
Ejemplos: WinFS (Microsoft), Desktop Search (Google),
Spotlight (Mac OS)
Sistemas operativos: una visin aplicada
Versin seleccionada y ampliada por J.M. Pea

84

J. Carretero, F. Garca, P. de Miguel, F. Prez

También podría gustarte