Sistema de Archivos
Sistema de Archivos
Sistema de Archivos
SOA
Indice
• Introducción
• Descripción básica del hardware
• Visión estática
– Organización del espacio de disco
– Gestión del espacio de disco
– Gestión del espacio de nombres
– Ejemplo: Linux Ext2
• Visión dinámica
– Arquitectura del Sistema de Ficheros
• Acceso a diferentes sistemas de ficheros
– Ejemplo: Linux Ext2
SOA
Definiciones: fichero
• ¿Qué es un fichero?
– Para el usuario
• Conjunto de información relacionada que tiene un
nombre
– Para el sistema
• Una secuencia de bytes
• Dispositivo lógico
Introducción
SOA
Definiciones: sistema de ficheros
• ¿Qué es el Sistema de Ficheros?
– Conjunto de estructuras de datos y algoritmos para
almacenar, localizar y recuperar información de un
dispositivo de almacenamiento persistente (ej. Disco)
• Tareas del sistema de ficheros
– Gestionar el espacio del almacenamiento
• Asignar espacio a los ficheros
• Liberar el espacio de los ficheros eliminados
– Encontrar/almacenar los datos de los ficheros
– Organizar los ficheros en el sistema
Introducción
SOA
Definiciones: sistema de ficheros (II)
• Interfaz de usuario
– Se accede mediante el interfaz de E/S
• Acceso a ficheros: open, read, write, close, ..
• Gestión: link, unlink, chmod, chown,….
Introducción
SOA
Descripción básica del HW
• Discos mecánicos
– Unidad de trabajo: sector
• Asignación y transferencia
• 512 bytes
Descripción básica del HW
– Tiempo de acceso
• Seek time
– Posicionamiento en pista
– Espera sector
• Transferencia
– Tiempo de acceso
dominado por el seek time
SOA
Descripción básica del HW (II)
• Almacenamiento SSD (Solid State Drive)
– Unidad de trabajo: sector
• Asignación y transferencia
• 4096 bytes
– Tiempo de acceso
Descripción básica del HW
• Transferencia
– No hay tiempo de seek time (acceso directo)
• SF tradicionales no pensados para las características de
SSD y su rendimiento degrada con el uso
SOA
Organización del espacio de disco
• Particiones de disco
– Cada disco puede dividirse lógicamente en particiones
– Cada partición puede soportar un sistema de ficheros diferente
– Máximo de 4 particiones
• Tipos de particiones
– Primaria
• Soporte para un sistema de ficheros
– Extendida
– Objetivo: solventar la limitación del número máximo de particiones
– Soporte para dididir una partición primaria y crear nuevas particiones lógicas
Visión estática
SOA
Organización del espacio de disco (II)
• Organización de una partición
– En una partición tenemos
• Datos: información guardada por el usuario
• Metadatos: información necesaria para gestionar los
datos y guardada por el sistema de ficheros
– Ejemplo:
Visión estática
partición
SOA
Gestión del espacio de disco
• Bloque
– Unidad de trabajo del sistema de ficheros
• Acceso y transferencia
– 1 Bloque == N sectores
• Alternativas en la correspondencia bloque <-> sector
– Fija, variable, N grande, N pequeña, ….
• Gestión del espacio libre
– Localización de los bloques libres
• Gestión del espacio ocupado
Visión estatica
SOA
Ejemplo: Unix Ext2
• Metadatos
– Sector de arranque (Boot)
• Info básica para arrancar el SO instalado en la partición
– Superbloque:
• Formato del SF (tamaño bloque,, #inodes, #inodes libres, #bloques datos
,#bloques libres,…)
• Gestión espacio libre/ocupado: inodes, cuál es el inode raíz, acceso a bloques
libres, acceso a inodes libres
– Inodos
• Asignación de bloques indexada multinivel
• Datos
Visión estática
SOA
Ejemplo: Unix Ext2
tamaño
• Inodo tipo
prots
datos
datos
– Bloque con información del #links
...
...
archivo datos
...
• Tamaño, tipo, protecciones, … datos
...
– Indices a bloques de datos (1- ix
ix
datos
...
4Kb) ix
...
datos
• 10 índices directos
...
ix
datos
– 10-40Kb
...
• 1 índice indirecto datos
datos
– 256-1024 bloques == 256Kb – 4 Mb ix ix
...
Visión estática
...
...
ix ix
– 65K – 1M bloques == 65Mb – 4Gb
...
datos
• 1 índice triple indirecto
...
datos
– 16M – 1G bloques == 16Gb – 4Tb ix ix datos
...
...
SOA
Ejemplo: Unix Ext2
• Organización disco con 2 particiones ext2
partición1 partición2
BOOT BOOT
Visión estática
SOA
Visión dinámica
• Arquitectura del sistema de ficheros
– Capas
– Montaje de sistemas de ficheros
– VFS
– Windows
• Ejemplo: Linux
– Estructuras internas
– Read y open
SOA
Arquitectura del sistema de ficheros
• Sistema de ficheros lógico Proceso
SOA
Montaje de sistema de ficheros
• Para poder acceder al SF de un dispositivo,
primero se ha de montar
• Montar significa incluir el dispositivo (la
partición) en el SF que maneja el SO, para que sea
accesible a través de un directorio (punto de
montaje)
• Existe un dispositivo raíz que se monta en el
Visión dinámica
– sys_open(), sys_read(), …
– Dependientes del sistema de ficheros
• Estructuras internas para identificar ficheros, gestión espacio disco, …
• Consultadas/modificadas por las rutinas específicas del VFS
– sys_open_ext2(), sys_read_ext2(), …
SOA
VFS: Virtual File System
Proceso
SOA
Estructuras Linux
• Procesos (struct task_struct)
– Cada proceso tiene una tabla de canales
• Tabla de canales (struct files_struct)
– Cada canal apunta a un fichero abierto
– Información sobre el dispositivo virtual
• Tabla de ficheros abiertos (struct file)
Visión dinámica
SOA
Estructuras Linux
Acceso Acceso
compartido concurrente
SOA
Estructuras Linux
• Todas estas estructuras estan en C, pero
orientadas a objetos
• Tienen datos + código para acceder a ellas
– file_operations
– dentry_operations
– inode_operations
Visión dinámica
SOA
Exemple utilització a Linux
• Cas Read:
– sys_read (…
• vfs_read (file, buf, count, &pos)
– Llama a file -> f_op -> read (file, buf, count, &pos)
• Cas open:
– sys_open (filename, flags, mode)
• filp_open (filename, flags, mode)
Visión dinámica
SOA