Requisito previo: sistemas de archivos en sistemas operativos
Un archivo es una colección de información relacionada. El sistema de archivos reside en el almacenamiento secundario y proporciona un acceso eficiente y conveniente al disco al permitir que los datos se almacenen, ubiquen y recuperen.
Sistema de archivos organizado en muchas capas:
- Nivel de control de E/S:
los controladores de dispositivos actúan como interfaz entre los dispositivos y el sistema operativo, ayudan a transferir datos entre el disco y la memoria principal. Toma el número de bloque como entrada y como salida proporciona instrucciones específicas de hardware de bajo nivel. - Sistema de archivos básico:
emite comandos generales al controlador del dispositivo para leer y escribir bloques físicos en el disco. Administra los búferes de memoria y las cachés. Un bloque en el búfer puede contener el contenido del bloque de disco y la memoria caché almacena los metadatos del sistema de archivos que se usan con frecuencia. - Módulo de organización de archivos:
tiene información sobre los archivos, la ubicación de los archivos y sus bloques lógicos y físicos. Los bloques físicos no coinciden con los números lógicos del bloque lógico numerados del 0 al N. También tiene un espacio libre que rastrea los bloques no asignados. - Sistema de archivos lógicos:
administra la información de metadatos sobre un archivo, es decir, incluye todos los detalles sobre un archivo, excepto el contenido real del archivo. También se mantiene a través de bloques de control de archivos. El bloque de control de archivos (FCB) tiene información sobre un archivo: propietario, tamaño, permisos, ubicación del contenido del archivo.
ventajas :
- Se minimiza la duplicación de código.
- Cada sistema de archivos puede tener su propio sistema de archivos lógico.
Desventajas:
si accedemos a muchos archivos al mismo tiempo, el rendimiento es bajo.
Podemos implementar un sistema de archivos usando dos tipos de estructuras de datos:
- 1. Estructuras en disco:
- Bloque de control de inicio:
suele ser el primer bloque de volumen y contiene la información necesaria para iniciar un sistema operativo. En UNIX se denomina bloque de inicio y en NTFS se denomina sector de inicio de partición. - Bloque de control de volumen:
tiene información sobre una partición en particular, por ejemplo: recuento de bloques libres, tamaño de bloque y punteros de bloque, etc. En UNIX se llama superbloque y en NTFS se almacena en la tabla de archivos maestros. - Estructura de directorio:
almacenan nombres de archivos y números de iNode asociados. En UNIX, incluye nombres de archivos y nombres de archivos asociados y en NTFS, se almacena en la tabla de archivos maestra. - FCB por archivo:
contiene detalles sobre los archivos y tiene un número de identificación único para permitir la asociación con la entrada del directorio. En NTFS se almacena en la tabla de archivos maestros. - Tabla de montaje:
contiene información sobre cada volumen montado. - Caché de estructura de directorio:
este caché contiene la información de directorio de los directorios a los que se accedió recientemente. - Tabla de archivos abiertos de todo el sistema:
contiene la copia de FCB de cada archivo abierto. - Tabla de archivos abiertos por proceso:
contiene información abierta por ese proceso en particular y se asigna con el archivo abierto apropiado para todo el sistema. - Lista lineal:
mantiene una lista lineal de nombres de archivo con punteros a los bloques de datos. También requiere mucho tiempo. Para crear un nuevo archivo, primero debemos buscar en el directorio para asegurarnos de que ningún archivo existente tenga el mismo nombre y luego agregamos un archivo al final del directorio. Para eliminar un archivo, buscamos en el directorio el archivo nombrado y liberamos el espacio. Para reutilizar la entrada del directorio, podemos marcar la entrada como no utilizada o podemos adjuntarla a una lista de directorios libres . - Tabla hash:
la tabla hash toma un valor calculado a partir del nombre del archivo y devuelve un puntero al archivo. Disminuye el tiempo de búsqueda del directorio. El proceso de inserción y eliminación de archivos es fácil. La principal dificultad es que las tablas hash tienen un tamaño generalmente fijo y las tablas hash dependen de la función hash en ese tamaño.
generalmente contienen información sobre el número total de bloques de disco, bloques de disco libres, ubicación de los mismos, etc. A continuación se muestran diferentes estructuras en disco:
2. Estructura en memoria:
se mantienen en la memoria principal y son útiles para la gestión del sistema de archivos para el almacenamiento en caché. Varias estructuras en memoria dadas a continuación:
Implementación de directorio:
Publicación traducida automáticamente
Artículo escrito por dadimadhav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA