Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ficheros PDF
Ficheros PDF
SISTEMAS DE FICHEROS
Ficheros, directorios y sistema de ficheros
Objetivos
2 Sistemas Operativos - ARCOS
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Contenidos
4 Sistemas Operativos - ARCOS
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Introduccin
5 Sistemas Operativos - ARCOS
Un proceso de edicin de
Procesos fotografas (por ejemplo)
pila pila tiene en memoria su cdigo
y datos.
datos datos
Cada proceso trabaja con sus
datos, pudiendo generar
cdigo cdigo
nuevos datos.
Introduccin
6 Sistemas Operativos - ARCOS
Un proceso de edicin de
Procesos fotografas (por ejemplo)
pila pila tiene en memoria su cdigo
y datos.
datos datos
Cada proceso trabaja con sus
datos, pudiendo generar
cdigo cdigo
nuevos datos.
Sistema
Operativo
Puede haber varios procesos
en memoria, siendo el
sistema operativo el que
reparte y organiza la
memoria.
Introduccin
7 Sistemas Operativos - ARCOS
La memoria secundaria es de
Procesos mayor tamao, acceso a
pila pila bloque y no voltil.
Datos persistentes
Al proceso que lo usa, a la lectura
datos datos
concurrente entre procesos.
cdigo cdigo
Permitir guardar mayor
Sistema
cantidad de datos que en M.P.
Operativo
Organizada en bloques, lo que
supone tener que gestionar el uso
de estos bloques.
Los datos se guardarn en
M.S.: disco duro, flash, etc..
Introduccin
9 Sistemas Operativos - ARCOS
mediante abstracciones:
S.O.
ficheros, directorios, etc.
Introduccin
10 Sistemas Operativos - ARCOS
parte la aplicacin
Resumen: arquitectura
11 Sistemas Operativos - ARCOS
Tenemos ambas
Aplicaciones
posibilidades en ilustracin
que propone la SNIA:
Storage Networking
Industry Association
http://www.snia.org
Base Sistema de
de datos ficheros
Las aplicaciones acceden a
los datos almacenados en
los dispositivos de
almacenamiento usando
Dispositivos de almacenamiento BBDD y/o Sist. Fich.
Resumen: arquitectura
12 Sistemas Operativos - ARCOS
Aplicaciones
Ficheros + Directorios
Visin lgica
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Visin fsica
Dispositivos de almacenamiento
Aplicaciones
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Cuidado con el trmino sistema de ficheros que es usado para nombrar tanto
al software gestor como para las estructuras de datos en disco
Contenidos
15 Sistemas Operativos - ARCOS
Introduccin
Fichero
Definicin
Metadatos
Interfaz
Mtodos de acceso
Semntica de comparticin
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Fichero o archivo
16 Sistemas Operativos - ARCOS
Aplicaciones
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Fichero o archivo
17 Sistemas Operativos - ARCOS
posicin L/E
Fichero o archivo
18 Sistemas Operativos - ARCOS
Registros
Longitud fija
Longitud variable
Secuencia de palabras
Fichero o archivo
20 Sistemas Operativos - ARCOS
posicin L/E
Contenidos
21 Sistemas Operativos - ARCOS
Introduccin
Fichero
Definicin
Metadatos
Interfaz
Mtodos de acceso
Semntica de comparticin
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Fichero o archivo
22 Sistemas Operativos - ARCOS
Informacin de un archivo:
Datos
Informacin que almacena el archivo.
Metadatos
Informacin sobre el archivo: distintos atributos sobre el archivo.
Fichero o archivo: atributos
23 Sistemas Operativos - ARCOS
Introduccin
Fichero
Definicin
Metadatos
Interfaz
Mtodos de acceso
Semntica de comparticin
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Fichero o archivo: interfaz
26 Sistemas Operativos - ARCOS
posicin L/E
Fichero o archivo: interfaz POSIX
27 Sistemas Operativos - ARCOS
escritura lectura
#include <unistd.h>
#include <unistd.h> #include <stdlib.h>
#include <stdlib.h> #include <stdio.h>
#include <stdio.h> #include <string.h>
#include <string.h> #include <fcntl.h>
#include <fcntl.h>
int main ( int argc, char *argv[] )
int main ( int argc, char *argv[] ) {
{ int fd1 ;
int fd1 ; char str1[10] ;
char str1[10] ; int nb, i ;
int nb ;
fd1 = open ("/tmp/txt1",O_RDONLY);
fd1 = open ("/tmp/txt1", if (-1 == fd1) {
O_CREAT|O_RDWR, S_IRWXU); perror("open:");
if (-1 == fd1) { exit(-1);
perror("open:"); }
exit(-1);
} i=0;
do {
strcpy(str1,"hola"); nb = read (fd1,&(str1[i]),1); i++;
nb = write (fd1,str1,strlen(str1)); } while (nb != 0) ;
printf("bytes escritos = %d\n",nb); str1[i] = '\0';
printf(%s\n",str1);
close (fd1);
return (0) ; close (fd1);
} return (0);
}
Fichero o archivo: interfaz C99
28 Sistemas Operativos - ARCOS
Procesos
Sistema operativo
open, close, write, read y lseek
Fichero o archivo: interfaz C99
29 Sistemas Operativos - ARCOS
escritura lectura
FILE
* int buffer_ ***
1 2 3 4 5 6 7 8 9 10
FILE
* int buffer_ ***
1 2 3 4 5 6 7 8 9 10
de manera que cuando se pide la primera lectura, se realiza una lectura sobre el buffer
(cuyo tamao es mayor que el elemento pedido)
Fichero o archivo: interfaz C99
32 Sistemas Operativos - ARCOS
FILE
* int buffer_ ***
12345
1 2 3 4 5 6 7 8 9 10
los datos se cargan en el buffer y se copian la porcin pedida al proceso que hace el fread
Fichero o archivo: interfaz C99
33 Sistemas Operativos - ARCOS
FILE
* int buffer_ ***
12345
1 2 3 4 5 6 7 8 9 10
y la siguiente vez que se hace una lectura, si est en el buffer (memoria) se copia directamente de l.
De esta forma se reduce las llamadas al sistema, lo que acelera la ejecucin.
Fichero o archivo: interfaz C99
34 Sistemas Operativos - ARCOS
gettimeofday(&tf, NULL);
tiempo= (tf.tv_sec - ti.tv_sec)*1000 +
(tf.tv_usec - ti.tv_usec)/1000.0;
printf("%g milisegundos\n", tiempo);
return (0) ;
}
Fichero o archivo: interfaz C99
35 Sistemas Operativos - ARCOS
Introduccin
Fichero
Definicin
Metadatos
Interfaz
Mtodos de acceso
Semntica de comparticin
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Fichero o archivo: mtodo de acceso
37 Sistemas Operativos - ARCOS
Acceso directo:
read/write
Dispositivos de acceso aleatorio: lseek
discos duros.
Es posible posicionarse (lseek) en
cualquier posicin del fichero.
Permite construir sobre l otros posicin actual
mtodos de acceso (ej.: indexado)
Contenidos
38 Sistemas Operativos - ARCOS
Introduccin
Fichero
Definicin
Metadatos
Interfaz
Mtodos de acceso
Semntica de comparticin
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Fichero o archivo: semntica de comparticin
39 Sistemas Operativos - ARCOS
Introduccin
Fichero
Directorio
Definicin
Metadatos
Interfaz
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Directorio (carpetas)
42 Sistemas Operativos - ARCOS
Aplicaciones
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Directorio (carpetas)
43 Sistemas Operativos - ARCOS
Directorios especiales:
Directorio actual o directorio de trabajo: . (Ej.: cp /alex/correo.txt .)
Directorio padre: .. (Ej.: ls ..)
Directorio base del usuario: $HOME (Ej.: ls las $HOME)
Contenidos
46 Sistemas Operativos - ARCOS
Introduccin
Fichero
Directorio
Definicin
Metadatos
Interfaz
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Directorio (carpetas)
47 Sistemas Operativos - ARCOS
Informacin de un directorio:
Datos fichero | directorio
fichero especial cuyo contenido es un listado con los entradas que contiene.
Metadatos
Informacin sobre el directorio en s: distintos atributos sobre el directorio.
Introduccin
Fichero
Directorio
Definicin
Metadatos
Interfaz
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Directorios: interfaz
50 Sistemas Operativos - ARCOS
unlink (nombre)
rename (antiguo_nombre, nuevo_nombre)
Directorios: interfaz POSIX
51 Sistemas Operativos - ARCOS
lectura de /tmp
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
Cambiar de directorio de trabajo
int main ( int argc, char *argv[] )
{
DIR *dir1 ;
struct dirent *dp ; Imprimir el directorio actual de trabajo
char nombre[256] ;
int ret ;
return (0) ;
}
Directorios: interfaz POSIX
52 Sistemas Operativos - ARCOS
lectura de argv[1]
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <stdio.h>
Abrir un directorio para trabajar con l
int main ( int argc, char *argv[] )
{
DIR *dir1 ;
struct dirent *dp ;
struct stat s ; Leer entradas del directorio
closedir (dir1);
return (0) ;
}
Contenidos
53 Sistemas Operativos - ARCOS
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Sectores
54 Sistemas Operativos - ARCOS
Primer ltimo
sector sector
Bloques
55 Sistemas Operativos - ARCOS
Primer ltimo
sector sector
Bloques
56 Sistemas Operativos - ARCOS
U so d e l E sp a c io d e D isc o
800 100 %
75
500
50
100 uso del
ancho de
disco 25
50 banda
0 0
256 512 1K 2K 4K 8K 16K 32K
Tamao de Bloque
Metadatos Datos
Sistema de ficheros: atributos
59 Sistemas Operativos - ARCOS
/d3/f1 /d3/f2
umount /usr
/usr/d1 /usr/d3
/usr/d3/f1 /usr/d3/f2
Sistema de ficheros
http://en.wikipedia.org/wiki/List_of_file_systems
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Particiones/Volmenes
63 Sistemas Operativos - ARCOS
Aplicaciones
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Particiones
64 Sistemas Operativos - ARCOS
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.
Particiones
65 Sistemas Operativos - ARCOS
Metadatos
Tabla de
(swap)
Datos (swap) Metadatos Datos (ext2)
(ext2)
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/hda1 20800
# mkfs -c /dev/hda2 b 8196 123100
Particiones
66 Sistemas Operativos - ARCOS
Tabla de
Particin Particin
particiones
Particiones: particionado tradicional en PC
67 Sistemas Operativos - ARCOS
Particin extendida
Espacio sin
particionar
Sector de
arranque
Particin Particin
primaria 1 primaria 2 Particin Particin
(activa) lgica 1 lgica 2
http://www.howtoforge.com/linux_lvm
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Dispositivos
71 Sistemas Operativos - ARCOS
Aplicaciones
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Dispositivos
reales
72 Sistemas Operativos - ARCOS
Disco duro
Sistemas pticos
Etc.
Dispositivos
reales
73 Sistemas Operativos - ARCOS
especiales Directorios
74 Sistemas Operativos - ARCOS Sistemas Operativos
Sistema de ficheros - ARCOS
Directorios
especiales Sistema de ficheros
75 Sistemas Operativos - ARCOS Sistemas Operativos - ARCOS
Particiones/volmenes
Dispositivo md
Dispositivo de dispositivos Disp. Disp.
Introduccin
Fichero
Directorio
Sistema de ficheros
Particiones/Volmenes
Dispositivos
Software de sistema
Software de sistema
77 Sistemas Operativos - ARCOS
Aplicaciones
1
Benchmarks 3
2
Utilidades: consistencia y copia de seguridad
Ficheros + Directorios
Sistema de ficheros
Base Sistema de
de datos ficheros
Particiones/volmenes
Dispositivos
Dispositivos de almacenamiento
Benchmarks
http://linuxgazette.net/122/piszcz.html
1
Benchmarks:
Permiten medir las prestaciones del sistema de ficheros
(y toda dependencia del mismo)
Solucin:
Disponer de herramientas que revisen el sistema de archivos y
permita reparar los errores encontrados.
estructura fsica
80 Sistemas Operativos - ARCOS
estructura lgica
81 Sistemas Operativos - ARCOS
Estructuras en disco:
Comprobar que los metadatos en disco son coherentes
para la particin, directorios y archivos almacenados
Ej.: fsck en Linux o scandisk en Windows
Backup (copia de seguridad)
3
Dnde?
82 Sistemas Operativos - ARCOS
Lugar:
Distante del sistema principal
Protegido del agua, fuego, etc.
Armarios ignfugos
Medio:
Disco duro
V: capacidad y precio, I: delicado
Cinta
V: capacidad y precio, I: lentitud
Backup (copia de seguridad)
3
Cmo?
83 Sistemas Operativos - ARCOS
Cundo?
84 Sistemas Operativos - ARCOS
En parada (Off-line)
La copia de seguridad se realiza en los periodos de tiempo en
los que no se utilizan los datos del sistema.
En lnea (On-line):
La copia de seguridad se realiza mientras se utiliza el sistema.
Uso de tcnicas que eviten problemas de consistencia:
Snapshots
copia solo lectura del estado del sistema de ficheros.
Copy-on-write
escrituras despus de snapshot se realizan en copias.
Backup (copia de seguridad) 3
http://www.genbeta.com/sistemas-operativos/primeras-imagenes-de-history-
vault-el-time-machine-de-windows-8
http://www.reghardware.com/2007/11/08/review_leopard_pt2/page2.html
Lectura recomendada
86 Sistemas Operativos - ARCOS
Bsica Complementaria
Bsica Complementaria
Bsica Complementaria
Stallings 2005:
Carretero 2007: 12.6. Gestin de almacenamiento
secundario.
9.9. Estructura y
12.7. Gestin de ficheros en UNIX.
almacenamiento del fichero. 12.8. Gestin de ficheros en Linux.
9.10. Sistemas de ficheros.
Silberschatz 2006:
9.12. El servidor de ficheros. 11.1 Estructura de un sistema de archivos.
11.2 Implementacin de un sistema de
archivos.
11.3. Implementacin de directorios.
11.4. Mtodos de asignacin.
11.5. Gestin del espacio libre.
11.6. Eficiencia y prestaciones.