Sistema de Archivos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

Sistema de Ficheros

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

– Garantizar las protecciones de los ficheros


– Gestión del espacio de nombres

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

Tabla part primaria primaria extendida

Disco ext3 swap


ext2 ext2 ext2
/var /home /usr
info partición

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

Datos de gestión Datos


(metadatos)

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

– Localización de los bloques de un fichero


• Asignación de bloques a ficheros
• Ver transparencias de SO-grau
SOA
Gestión del espacio de nombres
• El espacio de nombres ofrece al usuario una
visión de todos los ficheros contenidos en el
sistema de ficheros
• Cada fichero debe tener un nombre simbólico
• Define reglas específicas para crear nombres
– Ej: En MSDOS nombres de 8 carácteres + 3 para
extensión
Visión estática

• Permite traducir los nombres de los ficheros a


su ubicación en el sistema de ficheros
SOA
G. espacio de nombres: Directorios
• Archivo especial gestionado por el SO
– Llamadas específicas de acceso y creación
• No accesible directamente mediante read/write
• Da acceso a la información sobre los archivos
– Atributos
• Tipo de archivo
• Fechas de creación, acceso, modificación, …
• Propietario
• Permisos
• Tamaño
• …
Visión estática

– Ubicación en el dispositivo de almacenamiento


• Operaciones gestión
– Buscar, crear, borrar, enumerar, actualizar entradas

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

– Bloques de tamaño fijo


• Directorio
– Enlaza un nombre de fichero con su inodo
– Los atributos del fichero se encuentran en el inodo

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

• 1 índice indirecto doble datos

...

...
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

MBR Inodos Datos Inodos Datos


Superbloque Superbloque

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

– Proporciona la abstracción fichero


para realizar la E/S
– Gestión del espacio de nombres
(directorios) Llamadas a Sistema
– Información sobre fichero para
siguiente nivel
Sistema de ficheros lógico
• Módulo de organización archivos
– Correspondencia archivos <-> Módulo organización archivos
bloques
Visión dinámica

– Gestión espacio libre/ocupado


Sistema de ficheros físico
• Sistema de ficheros físico
– Emite comandos al driver del
dispositivo para leer/escribir Driver Driver Driver
bloques de disco de cinta de red

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

directorio “/” del sistema de ficheros


• Los demás dispositivos se pueden montar en
cualquier directorio del SF.
SOA
VFS: Virtual File System
• Los SO soportan diferentes sistemas de ficheros:
– Ext2, ext3, FAT, ISO9660, XFS, ReiserFS, NTFS, …
• Linux utiliza el VFS para acceder a todos de forma uniforme
• VFS proporciona un mecanismo orientado a objetos para acceder a
todos estos sistemas de ficheros usando la misma interfaz de
llamadas a sistema.
• Estructuras de datos en 2 niveles
– Independientes del sistema de ficheros
• Contiene descripciones de los sistemas soportados
• Son consultadas/modificadas por las llamadas a sistema
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

Llamadas a Sistema (open,read,write,...)

Virtual File System (VFS)


Visión dinámica

EXT2 EXT3 XFS NTFS NFS

Sistema de ficheros físico

Device Driver Device Driver Device Driver

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

– Tabla global a todo el sistema


– Posición actual, modo acceso, …
– Cada fichero abierto apunta a su entrada de directorio
SOA
Estructuras Linux: Optimización
• Para evitar accesos a disco guarda en memoria
los datos/metadatos más usados
– Superbloque
– Cache de bloques (Buffer cache)
• Hay una cache para cada Sistema de Ficheros
– Cache de directorios (struct dentry)
Visión dinámica

• Entradas de directorio usadas


– Tabla de inodos (struct inode)
• La estructura inode con sus operaciones

SOA
Estructuras Linux

struct files_struct struct file struct inode


(Tabla de canales) (Tabla de ficheros abiertos) struct dentry (Tabla de Inodos)

f_pos, f_mode, f_count, ... d_iname, d_count d_iname, d_count


Visión dinámica

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

– open_namei (filename, flags, mode, &nd) crea dentry (si no


existia)
» dentry_open (nd.dentry, nd.mnt, flags);
• Llama a file -> f_op -> open (inode, file)

SOA

También podría gustarte