Implementación del sistema de archivos en el sistema operativo

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 :

  1. Se minimiza la duplicación de código.
  2. 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:
    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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.

    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:

    1. Tabla de montaje:
      contiene información sobre cada volumen montado.
    2. Caché de estructura de directorio:
      este caché contiene la información de directorio de los directorios a los que se accedió recientemente.
    3. Tabla de archivos abiertos de todo el sistema:
      contiene la copia de FCB de cada archivo abierto.
    4. 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.

    Implementación de directorio:

    1. 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 .
    2. 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.

Publicación traducida automáticamente

Artículo escrito por dadimadhav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *