La mayoría de los sistemas electrónicos poseen varios tipos de memoria para poder funcionar adecuadamente. Una de estas memorias es la denominada memoria de almacenamiento masivo o memoria secundaria. La principal cualidad de esta memoria es su gran capacidad de almacenamiento de datos, los cuales persisten una vez apagada la alimentación, siendo de lectura y escritura. Es decir, generalmente la memoria secundaria es utilizada para guardar los datos de configuración y de usuario. Estas memorias suelen ser una colección de bytes organizados en sectores. Para darle sentido a estos bytes, se utilizan los sistema de archivos.
Estos sistemas almacenan y relacionan los diferentes sectores. Al conjunto de sectores relacionados los denominamos archivo. Existen muchos tipos de sistema de archivos con diferentes propiedades según las necesidades del sistema. Sin embargo, ninguno de los existentes está adaptado a sistemas embebidos en tiempo real.
Problemas del uso de memorias de almacenamiento masivo en sistemas embebidos
Las principales limitaciones a la hora de utilizar las memorias secundarias en los sistemas embebidos en tiempo real son que necesitan:
- Un tiempo de acceso determinista.
- Alta utilización de CPU (Unidad Central de Procesamiento).
- Alta utilización de memoria RAM.
Con esta idea en mente, en Embention, hemos diseñado el sistema de archivos DFS2 (Deterministic Fixed-Size File System).
Ventajas del uso de sistema de archivos DFS2
DFS2 ha conseguido estos requerimientos dividiendo la memoria de almacenamiento en particiones. Cada una de estas particiones está compuesta de un número de ficheros con un tamaño máximo. La cantidad de particiones en la que se divide la memoria, los archivos que componen cada partición y el tamaño máximo de los archivos, son configurables por el usuario e independientes entre particiones.
Con esta organización de la memoria, se consigue que todos los archivos se encuentren en una posición determinista y conocida por el sistema de archivos. De esta forma, el acceso a la información de cada fichero se obtiene leyendo un sector de datos, cuya posición es fácilmente calculable por el sistema de ficheros. De este modo, se minimizan los requerimientos de CPU y de memoria RAM necesaria. Además, el tiempo de acceso a los ficheros es determinista, pues es el mismo para todos los archivos independientemente de su posición, ya que se elimina la fragmentación de la memoria.