El Journaling Flash File System (o JFFS ) es un sistema de archivos con estructura de registro para su uso en dispositivos de memoria flash NOR en el sistema operativo Linux . Ha sido reemplazado por JFFS2 .
Desarrollador (es) | Comunicaciones de Axis |
---|---|
Nombre completo | Registro del sistema de archivos Flash |
Otro | |
Apoyados sistemas operativos | Linux |
Diseño
La memoria flash (específicamente la memoria flash NOR ) debe borrarse antes de escribir. El proceso de borrado tiene varias limitaciones:
- El borrado es muy lento (normalmente de 1 a 100 ms por bloque de borrado, que es de 10 3 a 10 5 veces más lento que leer datos de la misma región).
- Solo es posible borrar la memoria flash en segmentos grandes (generalmente 64 KiB o más), mientras que se puede leer o escribir en bloques más pequeños (a menudo 512 bytes).
- La memoria flash solo se puede borrar un número limitado de veces (normalmente 10 3 –10 6 ) antes de que se agote.
Estas limitaciones se combinan para producir una profunda asimetría entre los patrones de acceso de lectura y escritura a la memoria flash. Por el contrario, las unidades de disco duro magnético ofrecen acceso de lectura y escritura casi simétrico: la velocidad de lectura y la velocidad de escritura son casi idénticas (ya que ambas están limitadas por la velocidad a la que gira el disco), es posible leer y escribir pequeños bloques o sectores (normalmente 512 o 4096 bytes), y no existe un límite práctico para la cantidad de veces que se pueden escribir y reescribir los medios magnéticos.
Los sistemas de archivos tradicionales, como ext2 o FAT, que fueron diseñados para su uso en medios magnéticos, normalmente actualizan sus estructuras de datos en el lugar, con estructuras de datos como inodos y directorios que se actualizan en el disco después de cada modificación. Esta falta concentrada de nivelación del desgaste hace que los sistemas de archivos convencionales no sean adecuados para el uso de lectura y escritura en dispositivos flash.
JFFS refuerza la nivelación del desgaste al tratar el dispositivo flash como un registro circular. Todos los cambios en archivos y directorios se escriben al final de los nodos de inicio de sesión . En cada nodo, primero se escribe un encabezado que contiene metadatos, seguido de los datos del archivo, si los hay. Los nodos están encadenados con punteros de desplazamiento en el encabezado. Los nodos comienzan siendo válidos y luego se vuelven obsoletos cuando se crea una versión más nueva de ellos.
El espacio libre que queda en el sistema de archivos es el espacio entre la cola y la cabeza del registro. Cuando se agota, un recolector de basura copia los nodos válidos de la cabeza a la cola y salta los obsoletos, recuperando así espacio.
Desventajas
- En el momento del montaje, el controlador del sistema de archivos debe leer toda la cadena de inodo y luego mantenerla en la memoria. Esto puede resultar muy lento. El consumo de memoria de JFFS también es proporcional al número de archivos en el sistema de archivos.
- El diseño de registro circular significa que todos los datos en el sistema de archivos se reescriben, independientemente de si son estáticos o no. Esto genera muchos ciclos de borrado innecesarios y reduce la vida útil del medio flash.
Ver también
Referencias
Fuentes
- Woodhouse, David. "JFFS2: El sistema de archivos Flash Journalling, versión 2" . Sources.Redhat.com .