You are on page 1of 59

Sistemas de

Archivos
Cecilia Hernndez
2007-1

Sistemas de Archivos

Concepto simple
Implementa

abstraccin para accesar


almacenamiento secundario
Abstraccin : archivos

Proporciona

organizacin lgica para


accesar archivos en directorios
Normalmente directorio implementado como
rboles

Proporciona

a usuarios mecanismos de
proteccin y comparticin de archivos
Debe proporcionar semntica de consistencia para
permitir acceso compartido

Archivos

Archivo es una coleccin de datos con algunas


propiedades

Contenido, tamao, dueo, ltima fecha de


modificacin, proteccin, etc

Archivos pueden tener tipos entendibles

Sistema de archivos: archivo simple, directorio,


enlace
Otras partes del SO, aplicaciones o bibliotecas
Ejecutable, biblioteca, cdigo fuente, etc

Tpicamente, tipos pueden incluidos en nombre

En Windows, tipo incluido en nombre


En unix, tipo especificado en los dos primeros bytes
del archivo (magic numbers) o caracteres iniciales

Operaciones sobre 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

Organizar archivos en sistema


til

para usuarios
til para sistema de archivos y usuarios
para buscar y accesar archivos

Mayora de sistemas de archivos soportan


mltiples niveles de directorios
Con

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

Normalmente un directorio es slo un


archivo con metadata
con

lista de archivos y atributos


contenidos en actual directorio
Lista (nombre archivo, atributos archivo)
Atributos pueden ser
Tamao, proteccin, dueo, tiempo de
creacin, tiempo de ltima modificacin,
ubicacin en disco, etc

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

Estructuras en Disco y Memoria para implementar SA


En disco
Bloque Control de Buteo (Boot Control Block)
Informacin para butear SO de particin (si existe en
particin). Unix : Boot block, NTFS : Partition Block Sector
Bloque de Control de Particin (Partition Control Block)
Detalles de particin: Tamao bloque, contador y punteros de
bloques libres, contador y punteros de FCBs. Unix
Superblock, NTFS : Tabla de Archivo Maestra (Master File
Table). En Unix/linux llamado superblock
Estructura de Directorios a usar
FCB (File Control Block)
Contiene informacin de archivo: dueo, tamao, permisos,
punteros a bloques de disco, etc
Unix Inodo, NTFS, info guardada en Tabla de Archivo Maestra

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

Tabla de Archivos Abiertos a nivel de Sistema (TAAS)


Contiene copia de los FCBs de cada archivo, y otra informacion
como nmero de Procesos que tiene archivo abierto

Tabla de Archivos Abiertos a nivel de Proceso (TAAP)


Contiene puntero a entrada a tabla de archivos abiertos de
sistema

Particiones de disco
Caso Unix/linux
MBR T particiones

Boot
block

Superblock Espacio libre

Inodes

Dir. Root Archivos y


directorios

Cada particin

Particin Particin Particin

boot block, puede subir sistema cargando programa residente aqui


Superblock. Especifica los lmites de las reas siguientes, contiene
punteros a listas de inodos libres y bloques de archivos libres
Area de inodos. Contiene descriptores (inodos) para cada archivo en el
disco. Todos los inodes son del mismo tamao
Dir root. Inodo y directorio root
Archivos y directorios. Bloques de se usan para

Una particin puede usarse para un sistema de archivos o como area de


swapping ( en este caso es slo bloques para respaldo)

Proceso de buteo
Caso Unix/linux

CPU ejecuta cdigo residente en ROM BIOS (Read


Only Memory Basic Input Output System)

Cdigo verifica y prepara HW de sistema


Carga programa (master boot program o boot
loader) ubicado en sector 0 (Master Boot Record) de
disco
En linux puede ser lilo o grub, los que permiten elegir
una particin a subir
Contiene programa ejecuta SO en particin

Estos boot loaders estn en MBR o en primer sector


de parcicin activa

Con programas Lilo o Grub es posible definir varias


particiones con diferentes SOs
Aunque tambien sirven para usar el mismo sistema
de archivos pero identificar diferentes SO (asociados
a diferentes linux kernels)

Sistema de Archivos Unix (UFS)

Sistema de Archivos original en Unix (1970)


Disco dividido en particiones
Una particin: grupo de cilindros adyacentes
Un sistema de archivos puede residir en una particin
BIOS define sector de buteo (boot sector) para estar en cabeza
0, cilindro 0, sector 1
Master Boot Record (MBR) usado para butear computador
Sabe de boot loader y tabla de particiones
Tabla de particin
Define direcciones de inicio y fin de cada particin
Una particin es marcada como activa
Cuando sistema sube
BIOS ejecuta MBR
MBR localiza particin activa y ejecuta bloque de buteo

Para que usar particiones?

Dividir el disco para diversos


propsitos
Tener

diversos SOs cargados uno en


cada particin
SOs y sistemas de archivos pueden
ser usados en forma independiente
Respaldos o cualquier uso que quiera
darle el usuario

Crear, Abrir y Usar un Archivo

Crear

Abrir

SO busca en bloque de control de particin por un puntero de un


FCB no usado
SO suma puntero de FCB en la estructura del directorio.
Buscar si archivo esta abierto en TAAS, si no esta Buscar en
directorios por nombre de archivo
Copiar informacin de FCB a la TAAS
Sumar una entrada para el archivo en la TAAP, que contiene puntero
a TAAS
SA retorna descriptor de archivo o handle a proceso que lo abre

Usar

Escribir, buscar el bloque de control de particin por punteros a


bloques de disco vacos
Leer. buscar en FCB bloques a leer

Usando Disco para Almacenar


Archivos

SA almacena archivos en bloques

Define tamao de bloque, en general entre 1KB y 4KB


Existe un Bloque Maestro que define la ubicacin del directorio root
Siempre una ubicacin bien conocida
En general replicada para proporcionar mayor disponibilidad
Posee una lista con bloques libres y bloques ocupados
En general, bitmap, define un bit por bloque de disco
1 si esta ocupado, 0 si esta libre
Almacenada en disco y en memoria (para aumentar
rendimiento)
SO usa Caching
SO mantiene cache con bloques de disco usados mas
recientemente (disminuir latencia de acceso a disco)

Registro de Bloques Asignado a


Archivos

Estructura de datos comn


Encabezado de archivo: cada archivo posee uno
Que bloques de disco estan siendo ocupados por
archivo
Distintas implementaciones: Como se sabe que bloques
pertenecen a que archivos
Asignacin contigua
Archivos enlazados
Archivos indexados
Archivos indexados en mltiples niveles

Asignacin Contigua

Usuario dice por adelantado tamao de archivo


SO busca en bitmap (usando criterio) bloques de
disco que satisfacen requerimiento de usuario
El encabezado de archivo posee
Primer sector de bloque en disco
Tamao de archivo en trminos de nmero de
sectores

Ventajas/Desventajas
+ Acceso secuencial rpido
+ Acceso aleatorio fcil
- Fragmentacin externa
- Difcil cuando archivo crece ms de lo definido
originalmente

Archivos Enlazados

Cada bloque de disco incluye puntero al siguiente bloque


de disco
Encabezado de archivo posee direccin del primer bloque
de disco
Ventajas/Desventajas
+ Archivos pueden crecer dinmicamente
- Acceso secuencial no es tan bueno, pero mejor que aleatorio
Requiere tiempo de bsqueda de prximo bloque
- Acceso aleatorio muy lento
- No es confiable, que pasa si se pierde o se estropea un
bloque?

MS-DOS FAT (File Allocation Table) usa esta filosofa, pero


implementacin mediante una tabla

Mejor rendimiento, sobretodo si tabla esta en memria

Archivos Indexados

Usuario especifica tamao mximo de archivo


SA define un arreglo de punteros a bloques acorde al
tamao mximo
Encabezado de archivo posee arreglo de punteros de
bloques (index block: contiene punteros a los bloques de
disco del archivo)
Ventajas/Desventajas

+ Tamao de archivo puede crecer fcilmente hasta mximo


+ Acceso aleatorio es rpido
- Costoso si archivo crece sobre mximo
- Acceso secuencial lento, ya que bloques pueden estar
distantes unos de otros en disco

Archivos Indexados con Mltiples


Niveles

Objetivo

Rpido para archivos pequenos y permitir archivos grandes

Encabezado de archivo posee 13 punteros

Tabla de punteros de tamao fijo, aunque no son todos


equivalentes
Primeros 10 (ahora 12) punteros direcccionan bloques de datos
Puntero dcimo primero (11) (ahora 13): Puntero indirecto
Apunta a bloque de punteros de bloques de datos
Puntero dcimo segundo (12) (ahora 14): Puntero doblemente
indirecto
Apunta a bloque de punteros, los que a su vez contienen
punteros a bloques de datos
Puntero dcimo tercero (13) (ahora 15): Puntero triplemente
indirecto
Apunta a bloque de punteros, los que a su vez contienen
punteros a bloques de punteros, los que contienen punteros a
bloques de datos

Archivos Indexados con Mltiples


Niveles

Unix implementa este mecanismo


Ventajas/Desventajas
+ Simple
+ Archivos pueden crecer fcilmente (tamao max
relativamente grande)
+ Archivos pequeos rpidos
- Archivos grandes penalizados en tiempo de
bsqueda, por el uso de indireccin de mltiples
niveles
- Mucho tiempo usado en bsqueda de bloques
(cuando archivos son grandes)

Ejemplo FAT

Entrada directorio
test.txt

...........

88

20

35

25

103

35

25

88

20

95

103

EOF

Ejemplo Inodos Unix (tambin en


FFS)

Inodo estructura de datos que contiene dueo archivo, modo,


tamao, proteccin, contadores de enlaces y tabla de asignacin de
bloques de disco

Ejemplo Inodos

En el SA Unix, con archivos indexados con multiples niveles,


con encabezado de archivo de 13 entradas, 10 entradas para
direccionar bloques directamente, 1 entrada indirecta, 1
entrada doblemente indirecta y 1 triplemente indirecta. Si el
tamao de bloque es de 1KB. Calcule:

Mximo tamao de archivo posible


Nmero de accesos a disco son necesarios para
alcanzar bloque 23, cuales son?

Ejemplo con i-nodos y bsqueda en


directorios

Ejemplo Traduccin Rutas con


Inodos

Archivos directorios: archivos en que cada entrada contiene


archivo o directorio y adems Inodo donde esta ubicado
Archivo /home/juan/tarea.txt.

Archivo directorio / contiene lista archivos/directorio con sus Inodos


Directorio home tiene Inodo 100
Inodo 100 contiene puntero a bloques donde esta home: bloque
200
Bloque 200 : archivo directorio home posee inodo para juan:
inodo 110
Inodo 110 contiene puntero a bloques donde esta juan: bloque 300
Bloque 300 : archivo diretorio juan posee inodo para tarea.txt:
inodo 120
Inodo 120 contiene punteros a bloques donde esta tarea.txt:
bloques 400, 401 y 402

Ubicacin de inodos

Unix original tena dos problemas de desempeo


importantes

Bloques de datos en cualquier parte del disco


Cuando archivo es nuevo se buscan bloques de archivos
Cuando SA envejece y se llena necesita ubicar nuevos
archivos mientras otros han sido borrados
Archivos de diferentes tamaos
Bloques para archivos nuevos empiezan a estar dispersos en el
disco

Inodos estn ubicados lejos de los bloques de disco


Todos los inodos al inicio del disco y luego los bloques de
disco
Bsqueda de archivos en directorios requiere referencias a
inodos y bloques de disco, como estan lejos unos de otros ms
tiempo es requerido para su acceso

Mejorando desempeo

Uso de Buffer cache

Explotar localidad usando memoria como cache para


archivos
Cache es compartida por todos los procesos
Muchos sistemas de archivos leen por adelantado (antes
que se necesite) a buffer cache
Caching escrituras
Necesario manejar consistencia en algunos casos se
requiere write-through

Algunos problemas con el buffer cache


Competencia de pginas con la administracin de
memoria
Tambin requiere algoritmos de reemplazo
Usualmente LRU

Proteccin de archivos

Proteccin usada para

En forma general

Controlar quien tiene acceso a qu archivo


Controlar el tipo de acceso que un usuario puede realizar
sobre archivo
Generalizar archivos a objetos
Generalizar usuarios a principales
Generalizar lectura/escritura a acciones

Un sistema de proteccin dice si una determinada


accin realizada por un determinado principal en un
deteminado objeto debera ser permitida

Usuario dueo puede leer/escribir sobre archivo, pero no


otros
Usuario puede leer algn archivo de sistema, pero no
escribirlo

Modela para representar proteccin

Dos maneras de verlo

Listas de control de acceso (ACLs)


Para cada objeto, guardar una lista de los principales y
las acciones permitidas para principales

Capacidades
Para cada principal, guardar una lista de los objetos y
acciones permitidas para principales

Representacin en siguiente matriz


objetos

principales

/etc/passwd /home/juan

/home/otro

root

rw

rw

rw

juan

rw

otro

r
ACL

capacidad

ACLs y Capacidades

Capacidades son ms fcil de transferir

Como llaves (caso casa)


Facilitan comparticin

ACLs son ms fciles de manejar

Basado en objetos, fcil de entregar y quitar


Quitar capacidades es ms difcil, hay que mantener
historia de principales que han tenido capacidad
Difcil de seguir, pues principales se pueden pasar
capacidades

ACLs se hacen grandes cuando objetos son muy


compartidos

Esquema puede simplificarse agrupando


Poner usuarios en grupos, poner grupos en ACLs

Cambiando acciones sobre grupos afecta al grupo


completo

Consistencia del SA

Los i-nodos y los bloques de discos residen en


buffer cache (memoria usada para cache de
archivos)
El comando sync fuerza la escritura en disco
de la informacin de disco residente en
memoria
Sistema hace un sync cada unos pocos
segundos
Una cada del sistema o corte de energa
entre syncs puede dejar el disco inconsistente
Se podra mejorar consistencia usando menos
caching pero esto perjudicara el desempeo

Manejando consistencia de archivos


(i-cache)

Verificar que cada bloque este asociado slo a


un archivo
Un vector de bits, un bit por cada bloque en disco
Seguir la lista de bloques libres e inodos libres

Cuando un bloque es encontrado, ver el bit


Si bit == 0, ponerlo en 1
Si bit == 1,
Si bloque esta asociado a archivo y en lista de bloques
libres
Eliminarlo de la lista de libres ( no garantia de lo
que suceda)
Si bloque est asociado a dos archivos error

Consistencia de directorios
(d-cache)

Verificar que directorios formen un


rbol
Verificar

que el contador de links de


un archivo sea igual al nmero de
directorios que apuntan a archivo

Compartiendo archivos 1
Enlaces duros

Un archivo en Unix puede tener


mltiples nombres
Nombre en entrada en el
directorio es llamado enlace duro.
Mltiples entrada en directorio
apuntan a mismo inodo
Cada inodo tiene un campo
count que indica el nmero de
enlaces duros
Llamada a sistema relacionadas
link y unlink

link(nombre existente, nuevo nombre)


crea nueva entrada en directorio con
nombre dado e incrementa el count de
inodo
Unlink(nombre), destruye entrada en
directorio, decrementa count, si count
== 0 libera bloques de disco e inodo
ocupado por archivo

Compartiendo archivos
Enlace simblico

Enlace simblico entrada en


directorio que contiene
pathname a otro archivo en el
SA
Llamada a sistema
Symlink(nombre existente,
nuevo nombre)
Asigna nuevo inodo a nuevo
archivo, nuevo archivo
contienen path de archivo
existente,
Si antiguo archivo es
eliminado, accesar nuevo
archivo no ser posible

Comparticin de archivos 2

Cada usuario tiene una tabla de canal o tabla de archivos


abiertos por usuario
Cada entrada en la tabla de archivos abiertos es un puntero
a una entrada a la tabla de archivos abiertos del sistema
Cada entrada en la tabla de archivos abiertos contiene un file
offset y un puntero a una entrada en la tabla de inodos
residentes en memoria
Si un proceso abre un archivo ya abierto se crea una nueva
entrada en la tabla de archivos abiertos con un nuevo file
offset apuntando a la misma entrada en la tabla de inodos
residentes en memoria
Si un proceso hace un fork, el hijo obtiene una copia de la
channel table ( y luego el mismo file offset)

Usuario 1

Usuario 2

Usuario 3

channel table

channel table

channel table

open file
table

memory-resident
i-node table

file offset

file offset

Algunos SAs populares

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

UFS (Sistema de Archivos Unix


original)

Layout en disco de UFS

Bloques de disco son asignados aleatoriamente a


archivos sistema usado por largo tiempo

Metadata al principio en disco

Cuando sistema nuevo, bloques asignados


secuencialmente a archivos

Inodos lejos de bloques

Ubicacin de inodos y bloques de


disco por archivo en UFS

Inodo contiene metadata de archivo incluyendo direcciones a


bloques de disco
Tiempo de bsqueda malo, cabeza debe moverse entre
cilindros distantes

FFS (Fast File System)

Proyecto en Berkeley BSD FFS (1970)

Idea es mejorar productividad y disminuir tiempo de


respuestas de Unix Original (UFS)
Idea se basa en conocimiento de layout en disco

Layout en disco en FFS

Grupos de cilindros
Tamaos de bloque de disco incrementado de 512 bytes
a 4KB
Mejor soporte para archivos grandes
Puede producir fragmentacin interna

Uso de fragmentos para solucionarla

FFS

FFS (File Fast System) usa idea de grupos de


cilindros

Disco particionado en grupos de cilindros


Bloques de datos de un mismo archivo ubicado en el
mismo grupo de cilindros
Inodo de archivo ubicado en el mismo grupo de
cilindros

Introduce un requerimiento de espacio libre

Para poder hacer lo explicado arriba se necesita


tener espacio libre disperso en todo el disco
En FFS se reserva el 10 % del disco para estar
disponible

Sistemas de Archivos Journaling

UFS y FFS usan memoria como cache para disco


(buffer cache)
UFS y FFS tienen problemas cuando sistema se
cae

Ejemplo cada de sistema en la creacin de archivo


1 Asignacin de inodo
Apuntar en entrada de directorio inodo de archivo
Problema de consistencia en estructuras de datos en
memoria y disco

UFS y FFS proporcionan utilitarios para reconstruir


consistencia (fsck), pero muy lento
Debe verificar cada bloque
No escalable (ms lento a medida que aumenta disco)

Sistemas de Archivos Journaling

Se hicieron populares en 2002


Varias opciones
Ext3,

ReinserFS, XFS, ntfs

Idea bsica
Actualizar

metadatos y datos
transaccionalmente
Los dos o ninguno

En

caso de falla, puede perderse un proco


de trabajo, pero disco queda consistente
En forma precisa, consistencia mediante uso de
log o journal transaccional, en lugar de barrer cada
bloque de disco para verificar estado

Almacenamiento de datos

Datos
En

buffer cache
En disco

Idea bsica de solucin


Siempre

dejar copia de datos en estado


consistente
Actualizar datos persistentemente escribiendo
secuencialmente (tiempo) en archivo journal
En tiempo libre de sistema, hacer
actualizaciones escritas en journal
cronologicamente y liberar espacio de archivo
journal

Redo log

Log

Archivo que se escribe slo al final conteniendo


registros de logs
Start t
Transaccin t ha empezado

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

Accin de Commit incluye escribir registro redo

Si ocurre caida de sistema

Recupera Log
Redo transacciones committed
Barre

el log en orden y reejecuta


actualizaciones de las transacciones
committed
Escrituras son idempotent (slo ocurre una
vez independiente del nmero de veces
que se ejecute)

Transacciones no committed
Ignorarlas

Como si caida ocurriera antes de commit

Desempeo

Log es una escritura continua


Escritura

En lugar de varias escrituras asincrnicas


Costosas

eficiente
en trminos de desempeo

Journaling
Bueno,

eficiente
Manejo de consistencia y recuperacin
eficiente

Detalles sobre buffer cache

Compartido por todos los procesos


Utiliza algoritmo de reemplazamiento
Tpicamente

LRU

Incluso una cache pequea puede ser


efectiva (4MB)
Hoy tenemos memorias grandes por lo que
podemos tener caches mas grandes
Muchos sistemas de archivos leen por
adelantado a la cache, aumentando su
efectividad

Escrituras y lecturas en buffer cache

Usuarios y aplicaciones asumen que datos estn en disco


despus de una escritura
En realidad, no necesariamente, para eso se usa cache
Sistema de archivos puede quedar inconsistente en caso de
falla si datos y metadatos no estn consistentes en disco
Mantener consistencia es cara
Algunos enfoques
Write through lo que se escribe en buffer cache se
escribe en disco (escritura sincrnica)
Write behind mantener cola de bloques no escritos,
periodicamente escribir en disco (no es confiable)
NVRAM: escribir en una RAM energizada y mas tarde en
disco (NVRAM es cara)

Lecturas vs escrituras

Lecturas se ven beneficiadas con buffer


cache grandes
Escrituras son un problema
Cualquier

estrategia debe incluir escritura a


disco en algn momento
Luego trfico a disco esta dominado por
escrituras
Escribir inodos y bloques de datos incluye
movimiento de cabeza en disco (caro en
tiempo) y transferencia de datos.

Log-Structured File System(LFS)

Diseado por avances en


Discos grandes y creciendo cada ao
Disponibilidad de grandes memorias

Buffer cache puede ser mas grande


Puede manejar mas bloques de disco en Memoria

Idea de LFS es tratar el disco como un log cuyas


operaciones se agregan en el tiempo
Coleccionar escrituras en el buffer cache y escribir un conjunto de
escrituras al disco
Toda la informacin escrita en disco se realiza en el log
Recuperacin en base a checkpoints (tratar el disco como bases
de datos)

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

Comparacin entre FFS y LFS


archivo2

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

Ubicando datos en el log

FFS pone los datos y metadatos en lugares conocidos en el


disco
LFS escribe datos y metadatos al final del log
LFS usa una map de inodos
Mapea archivo con ubicacin de inodo para archivo en un lugar
bien definido

Manejando espacio libre en el log

Disco es finito, luego log tambien es finito


No se puede seguir agregando en log infinitamente
Se necesita recuperar bloques borrados en parte antigua de
log
Log organizado en segmentos grandes (0.5 1 MB)
Cuando segmento se llena se escribe en disco
Con el tiempo segmentos se fragmentan (nuevos y viejos
bloques)
Segmentos con pocos datos vlidos se recuperan
Datos previamente copiados a final de log

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

Manejo de fragmentacin de segmentos y limpieza


es complicado
Uso de demonio de limpieza encargado de verificar
fragmentacin, compactacin y recuperacin

Comparacin entre FFS, JFS y LFS

LFS y FFS

Carga de trabajo por metadatos es cara


Incluye escritura pequeas (inodos ocupados y entradas
en directorios)

Problema de limpieza de segmentos en LFS es un


problema
LFS y JFS

JFS es robusto como LFS, pero metadata debe ser


escrita en disco ms frecuentemente
No confundir JFS con LFS
JFS tiene log de transacciones a disco para manejar
caidas y recuperacin ms rpido manejando
consistencia en disco asincrnicamente
LFS el disco es visto como log

You might also like