Gestión de archivos y directorios

Anuncio
Sistemas operativos: una visión aplicada
Capítulo 8
Gestión de Archivos y Directorios
Contenido
•
•
•
•
•
•
•
•
Visión del usuario del sistema de archivos
Archivos
Directorios
Servicios de archivos
Servicios de directorios
Sistemas de archivos
El servidor de archivos
Puntos a recordar
Sistemas operativos: una visión aplicada
1
© J. Carretero, F. García, P. de Miguel, F. Pérez
Visión del usuario
• Visión lógica:
– Archivos
– Directorios
– Sistemas de archivos y particiones
• Visión física:
– Bloques o bytes ubicados en dispositivos
Visión
lógica
Sistemas operativos: una visión aplicada
Visión
física
2
© J. Carretero, F. García, P. de Miguel, F. Pérez
Función principal
Interfaz de acceso
• El SF establece una correspondencia entre los archivos y los
dispositivos lógicos.
Sistemas operativos: una visión aplicada
SISTEMA
DE
FICHEROS
Protección
3
© J. Carretero, F. García, P. de Miguel, F. Pérez
Archivos: visión lógica
•
•
Conjunto de información relacionada que ha sido definida por su creador
Estructura de un archivo:
– Secuencia o tira de bytes (UNIX, POSIX)
Posición
– Registros (de tamaño fijo o variable)
Registro 1
C1
C2
Registro 2
C1
C2
C3 C4 C5
C3 C4 C5
Registro 3
C1
C2
C3 C4 C5
Registro 4
C1
C2
C3 C4 C5
Registro 1 C1
C2
C3
Registro 2 C1 C3 C4 C5
Registro 3 C1 C2
C4
C3
Registro 4 C1
C2
C3 C4
Registro n
C1
C2
C3 C4 C5
Registro n C1 C3
Sistemas operativos: una visión aplicada
4
C5
C4
© J. Carretero, F. García, P. de Miguel, F. Pérez
Concepto de archivo
• Un espacio lógico de direcciones contiguas usado para
almacenar datos
• Tipos de archivos:
– Datos:
• numéricos
• carácter
• binarios
– Programas:
• código fuente
• archivos objetos (imagen de carga)
– Documentos
Sistemas operativos: una visión aplicada
5
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplos de representación
Nombre
Atrib.
Size KB
Agrup. FAT
cabecera
Atributos
Tamaño
Nombre
Seguridad
Datos
Vclusters
Sistemas operativos: una visión aplicada
6
© J. Carretero, F. García, P. de Miguel, F. Pérez
Nombres de fichero y extensiones II
•
•
Los directorios relacionan nombres lógicos y descriptores internos de ficheros
Las extensiones son significativas para las aplicaciones (html, c, cpp, etc.)
Sistemas operativos: una visión aplicada
7
© J. Carretero, F. García, P. de Miguel, F. Pérez
Distintas estructuras lógicas
Árbol de registros
Cabecera
Módulo
objeto
Cabecera
Registros de
longitud
variable
Archivo de
biblioteca
Byte o
registro de
longitud fija
Sistemas operativos: una visión aplicada
Módulo
objeto
8
© J. Carretero, F. García, P. de Miguel, F. Pérez
Archivos: visión lógica
•
Estructura de un archivo:
– Archivos de estructura compleja
• Archivos indexados
• Archivos directos o de dispersión
– Ejemplo de archivo indexado:
Registro
Clave
Fichero
indice
Fichero principal
– Los archivos estructurados en registros y los archivos con estructuras
complejas se pueden construir como una capa sobre la visión de tira de
bytes.
Sistemas operativos: una visión aplicada
9
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura de archivo ejecutable LINUX
Número mágico
Número de secciones
Cabecera
primaria
Tamaño segmento texto
Tamaño segmento datos
Cabecera de
sección 1
Tipo de sección,
tamaño de la sección
dirección virtual
Tamaño datos sin valor
inicial
Tamaño tabla de símbolos
Tipo de sección,
tamaño de la sección
dirección virtual
Sección 1
Código
Sección 2
Datos con
valor inicial
Sección n
Datos con
valor inicial
Valor inicial de registros
Dirección inicial
...
Cabecera de
sección n
Opciones
Información
de carga
Tabla de
símbolos
Otra
información
Sistemas operativos: una visión aplicada
10
© J. Carretero, F. García, P. de Miguel, F. Pérez
Archivos: visión lógica y física
•
•
Usuario: Visión lógica.
Sistema operativo: visión física ligada a dispositivos. Conjunto de bloques.
Posición
Visión lógica
Archivo A
Bloques: 13
20
1
8
3
16
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Bloques de la Unidad de Disco
Visión física
Sistemas operativos: una visión aplicada
11
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descripción física en UNIX (nodo-i)
Tipo de Fichero y Protección
Número de Nombres
Propietario
Grupo del Propietario
Tamaño
Instante de creación
Instante del último acceso
Instante de la última modificación
Puntero a bloque de datos 0
Puntero a bloque de datos 1
Puntero a bloque de datos 9
Puntero indirecto simple
Puntero indirecto doble
Puntero indirecto triple
Tamaño máximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb
Sb el tamaño del bloque y direcciones de bloques de 4 bytes.
Punteros
a Bloques
de Datos
Punteros
a Bloques
de Datos
Punteros
a Bloques
de Datos
nodo-i
Punteros
a Bloques
de Datos
Punteros
a Bloques
de Datos
Punteros
a Bloques
de Datos
Sistemas operativos: una visión aplicada
12
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descripción física en MS-DOS (FAT)
FAT
Directorio Raíz
Nombre
pep_dir
Atrib.
dir
fiche1.txt
KB Agrup.
5
27
12
27 <eof>
45
45
Directorio pep_dir
Nombre
carta1.wp
prue.zip
Atrib.
R
KB Agrup.
24
74
16
91
58
51 <eof>
58 <eof>
74 75
75 76
76 <eof>
91 92
• FAT de 12 bits 4K agrupaciones
• FAT de 16 bits 64K agrupaciones
Sistemas operativos: una visión aplicada
13
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo: explorador de Windows
Sistemas operativos: una visión aplicada
14
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo de entradas de directorio
Nombre
Tipo de
archivo
Contador
de bloques
...
Código de
usuario
Números
de bloque
archivo
extendido
Directorio de CP/M
Nombre
Tipo de
archivo
Número
del primer
Reservado Hora bloque
Atributos
Fecha
Tamaño
Directorio de MS-DOS
Nodo-i: Puntero al
descriptor del archivo
Nombre
Directorio de UNIX
Sistemas operativos: una visión aplicada
15
© J. Carretero, F. García, P. de Miguel, F. Pérez
Directorio de un nivel
• Un único directorio para todos los usuarios
• Problemas de nombrado y agrupación
carta
mapa.gif
Sistemas operativos: una visión aplicada
lista.txt
...
Directorio
...
...
Archivos
...
16
programa.o
© J. Carretero, F. García, P. de Miguel, F. Pérez
Directorio de dos niveles
•
•
•
•
Un directorio por cada usuario
Camino de acceso automático o manual
El mismo nombre de archivo para varios usuarios
Búsqueda eficiente, pero problemas de agrupación
...
marivi miguel
...
datos lista.c
Directorio
del usuario
...
Directorio
maestro
claves
...
elvira
test
agenda
...
...
...
archivos
...
mail
...
lista.c
...
Sistemas operativos: una visión aplicada
Directorio
del usuario
archivos
17
...
Directorio
del usuario
archivos
...
claves
...
mio.o
...
© J. Carretero, F. García, P. de Miguel, F. Pérez
Directorio con estructura de árbol
• Búsqueda eficiente y agrupación
• Nombres relativos y absolutos -> directorio de trabajo
tmp
marivi
miguel
home
...
...
Directorio
raíz
...
usr
bin
elvira
include
stdio.h
datos
lista.c
test
claves
agenda
agenda
buzon
claves
sh
correo
mail
rm
vi
mio.o
Sistemas operativos: una visión aplicada
18
© J. Carretero, F. García, P. de Miguel, F. Pérez
Directorio de grafo acíclico I
• Tienen archivos y subdirectorios compartidos
• Este concepto no existe en Windows
tmp
marivi miguel
...
home
Directorio
raíz
...
bin
elvira
...
usr
include
stdio.h
datos
lista.c
test
claves
agenda
agenda
buzon
claves
sh
correo
mail
rm
vi
claves
Sistemas operativos: una visión aplicada
19
© J. Carretero, F. García, P. de Miguel, F. Pérez
Interpretación de nombres en LINUX. I
.
..
.
..
.
..
claves
textos
Sistemas operativos: una visión aplicada
20
758
3265
© J. Carretero, F. García, P. de Miguel, F. Pérez
Sistemas de archivos y particiones
• Volumen: conjunto coherente de metainformación y datos.
• Ejemplos de Sistemas de archivos:
MS-DOS
Boot
Dos copias
de la FAT
Directorio
Raíz
Datos y
Directorios
UNIX
Boot
Super
Bloque
Mapas
de bits
Sistemas operativos: una visión aplicada
Datos y
Directorios
nodos-i
21
© J. Carretero, F. García, P. de Miguel, F. Pérez
Montado de Sistemas de archivos o particiones
Volumen raiz
(/dev/hd0)
Volumen sin montar
(/dev/hd1)
Volumen montado
/
/
/
mount
/lib
/bin
/usr
/d1
/d2
/d3/f1
/d3
/dev/hd1
/usr
/lib
/bin
/usr
/d3/f2
/usr/d1
/usr/d3/f1
Sistemas operativos: una visión aplicada
22
/usr/d3
/usr/d3/f2
© J. Carretero, F. García, P. de Miguel, F. Pérez
stat.
Obtiene información sobre un archivo
• Descripción:
– Obtiene información sobre un archivo y la almacena en una estructura de
tipo struct stat:
struct stat {
mode_t
ino_t
dev_t
nlink_t
uid_t
gid_t
off_t
time_t
time_t
time_t
};
st_mode;
st_ino;
st_dev;
st_nlink;
st_uid;
st_gid;
st_size;
st_atime;
st_mtime;
st_ctime;
Sistemas operativos: una visión aplicada
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
modo del archivo */
número del archivo */
dispositivo */
número de enlaces */
UID del propietario */
GID del propietario */
número de bytes */
último acceso */
última modificacion */
último modificacion de datos */
23
© J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de particiones
Partición 4
Partición 5
Partición 2
Partición 3
Sistemas operativos: una visión aplicada
24
© J. Carretero, F. García, P. de Miguel, F. Pérez
Sistemas de archivos y particiones (II)
•
•
Sistema de archivos: conjunto coherente de metainformación y datos.
Ejemplos de Sistemas de archivos:
MS-DOS
Boot
Dos copias
de la FAT
Directorio
Raíz
Datos y
Directorios
UNIX
Boot
Super
Bloque
Mapas
de bits
Sistemas operativos: una visión aplicada
Datos y
Directorios
nodos-i
25
© J. Carretero, F. García, P. de Miguel, F. Pérez
100 %
800
75
500
50
100
uso del
disco
ancho de
banda
50
25
0
0
256
512
1K
2K
4K
8K
16K
Uso del Espacio de Disco
Ancho de Banda (Kbytes/sec)
Tamaño bloque, ancho banda y uso disco
32K
Tamaño de Bloque
Sistemas operativos: una visión aplicada
26
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructuras de sistemas de archivos
Sistemas operativos: una visión aplicada
27
© J. Carretero, F. García, P. de Miguel, F. Pérez
Superbloque de sistemas de archivos en LINUX
Sistemas operativos: una visión aplicada
28
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura del FFS
Sistemas operativos: una visión aplicada
29
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura de un sistema de archivos con bandas
Partición Lógica
Disco 0 Disco 1 Disco 2 Disco 3
Partición
del
sistema
Conjunto
de
bandas
Sistemas operativos: una visión aplicada
bloque 0 bloque 1 bloque 2 bloque 3
bloque 4
30
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura del servidor de archivos
Proceso de
Usuario 1
Proceso de
Usuario 2
Proceso de
Usuario 3
Proceso de
Usuario n
...
Nivel de
usuario
Nivel de
sistema
Sistema de Archivos Virtual
Módulo de Organización de Archivos
ext2
msdos
Servidor de Bloques
ffs
...
proc
Cache de
Bloques
Manejadores de Dispositivo
...
Sistemas operativos: una visión aplicada
31
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura de un nodo virtual de UNIX
nodo-v
Información
del archivo
virtual
Direcciones de
las operaciones
virtuales
Dirección del
nodo-i
específico
nodo-i
Direcciones de
las operaciones
específicas de SA
Tabla de
funciones
del SA
Sistemas operativos: una visión aplicada
32
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descomposición en operaciones de
bloques
• Archivos con estructura de bytes
– Escritura leer
Fichero (tira de bytes)
Bloques
Sistemas operativos: una visión aplicada
33
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descomposición en operaciones de
bloques (II)
• Archivos de registros de tamaño fijo
R1
R2
Bloque 1
R1
R3
R4
Bloque 2
R
R2 R3 3 R4
Bloque 1
Sistemas operativos: una visión aplicada
R5
R6
Bloque 3
R
R5 6 R6
Bloque 2
34
Bloque 3
© J. Carretero, F. García, P. de Miguel, F. Pérez
Flujo de datos en el S. de A.
read (fd, buffer, tamaño)
Usuario
buffer
tamaño
archivo lógico
(VFS)
archivo lógico
(FFS)
3
4
5
6
bloques del
archivo
Bloques lógicos
(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 visión aplicada
35
© J. Carretero, F. García, P. de Miguel, F. Pérez
Tablas que usa el servidor de archivos
Tabla de archivos Tabla de archivos
abiertos. P1
abiertos. P2
fd
0
1
2
3
4
23
4563
56
3
678
fd
0
1
2
3
4
Tabla de archivos
abiertos. P3
230
563
98
3
247
fd
0
1
2
3
4
2300
53
4
465
326
Nodo-i Posición
98
98
Tabla de
nodos-i 98
Sistemas operativos: una visión aplicada
456
2348
Tabla intermedia
de nodos-i y posiciones
36
© J. Carretero, F. García, P. de Miguel, F. Pérez
Mecanismos enlazados
• Listas o índices enlazados: desde cada entrada de un bloque
existe un enlace al siguiente bloque del archivo.
• Ejemplo: tabla FAT de Windows
FAT
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
archivo A:
6
8
4
archivo B:
5
9
12
archivo C:
10
3
13
Sistemas operativos: una visión aplicada
37
2
© J. Carretero, F. García, P. de Miguel, F. Pérez
Mapa de bloques en un nodo-i
nodo-i
Información
del archivo
DISCO
820
Indirecto doble
342
1623
8204
1134
...
Indirecto simple
...
Direcciones de
los 10 primeros
bloques
10211
Bloque
indirecto
Indirecto triple
2046
20464
675
Sistemas operativos: una visión aplicada
38
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
7
Bloques libres
7,1
Sistemas operativos: una visión aplicada
11
14
16
11,1 14,1
39
18
17
16,3
(A)
(B)
© J. Carretero, F. García, P. de Miguel, F. Pérez
Cache de bloques (II)
• Estructura de datos en memoria con los bloques más
frecuentemente utilizados
Proceso
Proceso
Cache
Cache
Disco
Disco
– Lecturas adelantadas
– Limpieza de la cache (sync)
• Principal problema: fiabilidad del sistema de archivos.
Sistemas operativos: una visión aplicada
40
© J. Carretero, F. García, P. de Miguel, F. Pérez
Flujo datos con cache de bloques
read (fd, buffer, tamaño)
Usuario
buffer
tamaño
archivo lógico
(VFS)
archivo lógico
(FFS)
3
4
5
6
bloques del
archivo
Bloques lógicos
(Servidor
de bloques)
1340
1756
840
8322
bloques del
dispositivo
Cache de bloques
(Servidor
de bloques)
1340
1756
840
1756
Manejador de
disco y
dispositivo
8322
bloques del
disco
8322
Sistemas operativos: una visión aplicada
41
© J. Carretero, F. García, P. de Miguel, F. Pérez
Montado de sistemas de archivos o particiones
• Oculta el nombre del dispositivo físico o partición
Volumen raiz
(/dev/hd0)
Volumen sin montar
(/dev/hd1)
Volumen montado
/
/
/
mount
/lib
/bin
/usr
/d1
/d2
/d3/f1
/d3
/dev/hd1
/usr
/lib
/bin
/usr
/d3/f2
/usr/d1
• En MS-DOS c:\tmp\datos.txt
Sistemas operativos: una visión aplicada
/usr/d3/f1
42
/usr/d3
/usr/d3/f2
© J. Carretero, F. García, P. de Miguel, F. Pérez
Enlace físico
/
usr
/
user
lib
prog.c
pepe
.
..
datos.txt
prog.c
prueba.txt
datos.txt
.
..
80
100
60
datos.txt
prog.c
prueba.txt
prog.c
pepe
juan
23
100
28
400
juan
pepe
prueba.txt
.
..
user
lib
juan
pepe
datos.txt
usr
datos2.txt
juan
23
100
28
400
.
..
prueba.txt
datos2.txt
80
100
60
28
nodo-i 28
enlaces = 2
descripción
del fichero
ln /user/pepe/datos.txt /user/juan/datos2.txt
Sistemas operativos: una visión aplicada
43
© J. Carretero, F. García, P. de Miguel, F. Pérez
Enlace simbólico
/
usr
/
user
lib
pepe
datos.txt
prog.c
pepe
.
..
datos.txt
prog.c
usr
juan
pepe
datos.txt
prueba.txt
juan
23
100
28
400
.
..
80
100
prueba.txt 60
user
lib
prog.c
pepe
nodo-i 28
enlaces = 1
descripción
del fichero
.
..
datos.txt
prog.c
juan
prueba.txt
juan
23
100
28
400
.
..
80
100
prueba.txt 60
datos2.txt 130
datos2.txt
nodo-i 130
enlaces = 1
/user/pepe/
datos.txt
ln -s /user/pepe/datos.txt /user/juan/datos2.txt
Sistemas operativos: una visión aplicada
44
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo de montado
/
= punto de
montado
Punto de
montado
Sistemas operativos: una visión aplicada
45
© J. Carretero, F. García, P. de Miguel, F. Pérez
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 información redundante (RAID)
– Backups (copias de respaldo)
• En discos
• En cintas
• Backups incrementales
Sistemas operativos: una visión aplicada
46
A
B
B
A
© J. Carretero, F. García, P. de Miguel, F. Pérez
Redundancia con paridad
Dispositivo RAID
Disco 0
Disco 1
bloque 0 bloque 1
Disco 2
Disco 3
bloque 2 paridad
bloque 3
Sistemas operativos: una visión aplicada
47
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estado de los bloques
Número de bloque
Número de bloque
012 3
1 01 0
…
n
0
012 3
0 10 1
…
n
1
Referencias
012 3
1 00 0
…
n
0
Referencias
Libres
012 3
0 10 1
…
n
1
Libres
Referencias
Libres
CASO 1
CASO 2
Número de bloque
Número de bloque
012 3
1 02 0
…
n
0
012 3
0 10 1
…
n
1
Referencias
012 3
1 00 0
…
n
0
Libres
012 3
0 12 1
…
n
1
CASO 3
Sistemas operativos: una visión aplicada
CASO 4
48
© J. Carretero, F. García, P. de Miguel, F. Pérez
Cerrojos
Cerrojo C
F iche ro
Cerrojo C
F ichero
Cerrojo C
Cerrojo Ex
Cerrojo C
F iche ro
Cerrojo C
• Tipos:
Cerrojo Ex
Cerro jo C
– Compartido
– Exclusivo
• Importante para trabajo colaborativo
Sistemas operativos: una visión aplicada
49
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de la replicación
P 2
P 1
Escribir f1
Leer f1
Leer f2
Escribir f1
GR
primario
Escribir f1
GR
secundario
GR
secundario
Modelo de copia primaria
P 2
P 1
Escribir f1, 1
Escribir f1, 2
Leer f2
Escribir f1, 1
Gestor de
Réplicas
Gestor de
Réplicas
Escribir f1, 2
Escribir f1, 1
Gestor de
Réplicas
Escribir f1, 2
Modelo de gestión colectiva
Sistemas operativos: una visión aplicada
50
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descargar