Professional Documents
Culture Documents
Archivos
Cecilia Hernndez
2007-1
Sistemas de Archivos
Concepto simple
Implementa
Proporciona
Proporciona
a usuarios mecanismos de
proteccin y comparticin de archivos
Debe proporcionar semntica de consistencia para
permitir acceso compartido
Archivos
create(name)
open(name, mode)
read(fd, buf, len)
write(fd, buf, len)
sync(fd)
seek(fd,pos)
close(fd)
unlink(name)
rename(old, new)
Directorios
para usuarios
til para sistema de archivos y usuarios
para buscar y accesar archivos
jerarqua de nombres
Mayoria soport directorio actual y anterior
Rutas absolutas y relativas
$cd /home/alumnos/pedro (absoluto)
$cd tareas
(relativo a dir actual)
Implementacin directorios
Implementacin de Sistemas de
Archivos
Componentes de SA
Administracin de disco
Como organizar coleccin de bloques de discos en archivos
Nombres
Usuarios identifican sus archivos mediante nombres,
abstrayndose de como se almacenan internamente (#cilindro,
pista y sectores). Uso de nombres para archivos y directorios
Proteccin
Como se protege la informacin de archivos en el sistema entre
distintos usuarios y sistema
Confiabilidad/durabilidad/Rendimiento
Cuando sistema se cae, se pierde informacin en Memoria
(caches), pero se desea que informacin de archivos no se
pierda
Implementacin de Sistemas de
Archivo
Implementacin de Sistemas de
Archivos cont.
Estructuras en Memoria
Tabla de Particiones
Tabla con informacin acerca de cada particin
Estructura de directorios
Tabla de directorios accesados recientemente con su
informacin
Particiones de disco
Caso Unix/linux
MBR T particiones
Boot
block
Inodes
Cada particin
Proceso de buteo
Caso Unix/linux
Crear
Abrir
Usar
Asignacin Contigua
Ventajas/Desventajas
+ Acceso secuencial rpido
+ Acceso aleatorio fcil
- Fragmentacin externa
- Difcil cuando archivo crece ms de lo definido
originalmente
Archivos Enlazados
Archivos Indexados
Objetivo
Ejemplo FAT
Entrada directorio
test.txt
...........
88
20
35
25
103
35
25
88
20
95
103
EOF
Ejemplo Inodos
Ubicacin de inodos
Mejorando desempeo
Proteccin de archivos
En forma general
Capacidades
Para cada principal, guardar una lista de los objetos y
acciones permitidas para principales
principales
/etc/passwd /home/juan
/home/otro
root
rw
rw
rw
juan
rw
otro
r
ACL
capacidad
ACLs y Capacidades
Consistencia del SA
Consistencia de directorios
(d-cache)
Compartiendo archivos 1
Enlaces duros
Compartiendo archivos
Enlace simblico
Comparticin de archivos 2
Usuario 1
Usuario 2
Usuario 3
channel table
channel table
channel table
open file
table
memory-resident
i-node table
file offset
file offset
NTFS (Windows)
Minix (No se usa tanto, pero disponible)
UFS
Ext2fs: Ext2 (linux) estandar, basado en inodos
Ext3fs: Ext3 (linux). Journaling. Basado en otro
VeritasFS (VxFS). Journaling o logging
ReinserFS (linux) Journaling con logging. Completamente
nuevo. Incluido en linux estandar
JFS (de IBM). Journaling o logging. Basado en otro
FFS
XFS (de SGI). Journaling o logging. Basado en otro
http://www.tldp.org/HOWTO/Filesystems-HOWTO.html
Larga lista de sistemas de archivos
Grupos de cilindros
Tamaos de bloque de disco incrementado de 512 bytes
a 4KB
Mejor soporte para archivos grandes
Puede producir fragmentacin interna
FFS
Idea bsica
Actualizar
metadatos y datos
transaccionalmente
Los dos o ninguno
En
Almacenamiento de datos
Datos
En
buffer cache
En disco
Redo log
Log
T, x, v
Transaccin T ha actualizado bloque x y su nuevo valor
en v
Puede loggear diferencia de bloques en lugar de
bloques
Commit t
Transaccin T ha committed actualizacin sobrevive
caida
Recupera Log
Redo transacciones committed
Barre
Transacciones no committed
Ignorarlas
Desempeo
eficiente
en trminos de desempeo
Journaling
Bueno,
eficiente
Manejo de consistencia y recuperacin
eficiente
LRU
Lecturas vs escrituras
Idea LFS
Usar disco como un log
Si disco es manejado como log, no
habra costo de bsqueda
Nuevos datos y metadatos (inodos y
directorios) son acumulados en buffer
cache, luego escritos todos al mismo
tiempo en bloques grandes
(segmentos de 0.5 M 1 MB)
Mejora utilizacin de disco
archivo1
inode
directorio
dir1
dir2
FFS
dir1
Map inode
dir2
Log
archivo1
datos
archivo2
LFS
2 archivos de 1 bloque:
dir1/archivo1
dir2/archivo2
Desafos y soluciones
LFS
Problemas
Su implementacin no es tan simple
Ubicando datos en log no es tan rpida
Manejando espacio libre no es tan sencillo, no
siempre se puede agregar info, cuando se
elimina informacin deben recuperarse bloques
escritos previamente en log
LFS y FFS