Sistemas de archivos en el sistema operativo

Un archivo es una colección de información relacionada que se registra en un almacenamiento secundario. O archivo es una colección de entidades relacionadas lógicamente. Desde la perspectiva del usuario, un archivo es la asignación más pequeña de almacenamiento secundario lógico. 

El nombre del archivo se divide en dos partes como se muestra a continuación:

  • nombre
  • extensión, separados por un punto.

Atributos de los archivos y sus operaciones:
 

Atributos Tipos Operaciones
Nombre Doc Crear
Escribe Exe Abierto
Tamaño jpg Leer
Datos de creación Xis Escribe
Autor C Adjuntar
Última modificación Java Truncar
proteccion clase Borrar
    Cerca
Tipo de archivo Extensión habitual Función
Ejecutable exe, com, papelera Leer para ejecutar un programa en lenguaje de máquina
Objeto objeto, o Compilado, lenguaje de máquina no vinculado
Código fuente C, java, pas, asm, a Código fuente en varios idiomas.
Lote murciélago Comandos al intérprete de comandos
Texto txt, documento Datos textuales, documentos
Procesador de textos wp, tex, rrf, doctor Varios formatos de procesador de textos
Archivo arco, cremallera, alquitrán Archivos relacionados agrupados en un archivo comprimido
Multimedia mpeg, mov, rm Para contener información de audio/video
Margen xml, html, texto Son los datos y documentos textuales
Biblioteca lib, a, así que, dll Contiene bibliotecas de rutinas para programadores.
Imprimir o Ver gif, pdf, jpg Es un formato para imprimir o ver un archivo ASCII o binario.

DIRECTORIOS DE ARCHIVOS: 
La colección de archivos es un directorio de archivos. El directorio contiene información sobre los archivos, incluidos los atributos, la ubicación y la propiedad. Gran parte de esta información, especialmente la relacionada con el almacenamiento, es administrada por el sistema operativo. El directorio es en sí mismo un archivo, accesible por varias rutinas de administración de archivos. 

La información contenida en un directorio de dispositivos es: 

  • Nombre
  • Escribe
  • Dirección
  • Longitud actual
  • Longitud máxima
  • Fecha del último acceso
  • Fecha de última actualización
  • identificación del propietario
  • Información de protección

Las operaciones realizadas en el directorio son: 

  • Buscar un archivo
  • crear un archivo
  • Eliminar un archivo
  • Listar un directorio
  • Cambiar el nombre de un archivo
  • Atravesar el sistema de archivos

Las ventajas de mantener directorios son: 

  • Eficiencia: Se puede localizar un archivo más rápidamente.
  • Asignación de nombres: se vuelve conveniente para los usuarios, ya que dos usuarios pueden tener el mismo nombre para diferentes archivos o pueden tener un nombre diferente para el mismo archivo.
  • Agrupación: la agrupación lógica de archivos se puede realizar por propiedades, por ejemplo, todos los programas Java, todos los juegos, etc.

DIRECTORIO DE NIVEL ÚNICO 
En este se mantiene un directorio único para todos los usuarios. 

  • Problema de nombres: los usuarios no pueden tener el mismo nombre para dos archivos.
  • Problema de agrupación: los usuarios no pueden agrupar archivos según sus necesidades.

file_sys_5

DIRECTORIO DE DOS NIVELES 
En este se mantienen directorios separados para cada usuario. 
 

  • Nombre de ruta: debido a dos niveles, hay un nombre de ruta para cada archivo para ubicar ese archivo.
  • Ahora, podemos tener el mismo nombre de archivo para diferentes usuarios.
  • La búsqueda es eficiente en este método.

file_sys_6

DIRECTORIO ESTRUCTURADO EN ÁRBOL: El 
directorio se mantiene en forma de árbol. La búsqueda es eficiente y también hay capacidad de agrupación. Tenemos un nombre de ruta absoluto o relativo para un archivo. 
 

file_sys_7

MÉTODOS DE ASIGNACIÓN DE ARCHIVOS  :

1. Asignación continua:
se asigna un único conjunto continuo de bloques a un archivo en el momento de la creación del archivo. Por lo tanto, esta es una estrategia de asignación previa, utilizando porciones de tamaño variable. La tabla de asignación de archivos necesita solo una entrada para cada archivo, que muestre el bloque inicial y la longitud del archivo. Este método es el mejor desde el punto de vista del archivo secuencial individual. Se pueden leer varios bloques a la vez para mejorar el rendimiento de E/S para el procesamiento secuencial. También es fácil recuperar un solo bloque. Por ejemplo, si un archivo comienza en el bloque b y se desea el i-ésimo bloque del archivo, su ubicación en el almacenamiento secundario es simplemente b+i-1. 
 

file_sys_8

Desventaja – 

  • Se producirá una fragmentación externa, lo que dificultará encontrar bloques de espacio contiguos de longitud suficiente. Será necesario un algoritmo de compactación para liberar espacio adicional en el disco.
  • Además, con la preasignación, es necesario declarar el tamaño del archivo en el momento de la creación.

2. Asignación vinculada (asignación no contigua): la
asignación se realiza por bloques individuales. Cada bloque contiene un puntero al siguiente bloque de la string. Nuevamente, la tabla de archivos necesita solo una entrada para cada archivo, que muestre el bloque inicial y la longitud del archivo. Aunque la asignación previa es posible, es más común simplemente asignar bloques según sea necesario. Cualquier bloque libre se puede agregar a la string. Los bloques no necesitan ser continuos. Siempre es posible aumentar el tamaño del archivo si hay disponible un bloque de disco libre. No hay fragmentación externa porque solo se necesita un bloque a la vez, pero puede haber fragmentación interna, pero solo existe en el último bloque de disco del archivo. 

Desventaja –

  • Existe fragmentación interna en el último bloque de disco del archivo.
  • Hay una sobrecarga de mantener el puntero en cada bloque de disco.
  • Si se pierde el puntero de cualquier bloque de disco, el archivo se truncará.
  • Solo admite el acceso secuencial de archivos.

3. Asignación indexada:
aborda muchos de los problemas de la asignación contigua y enstringda. En este caso, la tabla de asignación de archivos contiene un índice de un nivel separado para cada archivo: el índice tiene una entrada para cada bloque asignado al archivo. La asignación puede hacerse sobre la base de bloques de tamaño fijo o bloques de tamaño variable. La asignación por bloques elimina la fragmentación externa, mientras que la asignación por bloques de tamaño variable mejora la localidad. Esta técnica de asignación admite el acceso secuencial y directo al archivo y, por lo tanto, es la forma más popular de asignación de archivos. 
 

file_sys_9

Gestión de espacio libre en disco:

Así como se debe administrar el espacio que se asigna a los archivos, se debe administrar el espacio que actualmente no se asigna a ningún archivo. Para realizar cualquiera de las técnicas de asignación de archivos, es necesario saber qué bloques en el disco están disponibles. Por lo tanto, necesitamos una tabla de asignación de discos además de una tabla de asignación de archivos. Los siguientes son los enfoques utilizados para la administración del espacio libre. 
 

  1. Tablas de bits : este método utiliza un vector que contiene un bit para cada bloque en el disco. Cada entrada de un 0 corresponde a un bloque libre y cada 1 corresponde a un bloque en uso. 
    Por ejemplo: 00011010111100110001 

    En este vector, cada bit corresponde a un bloque en particular y 0 implica que ese bloque en particular está libre y 1 implica que el bloque ya está ocupado. Una tabla de bits tiene la ventaja de que es relativamente fácil encontrar uno o un grupo contiguo de bloques libres. Por lo tanto, una tabla de bits funciona bien con cualquiera de los métodos de asignación de archivos. Otra ventaja es que es lo más pequeño posible.

  2. Lista de bloques libres : en este método, a cada bloque se le asigna un número secuencialmente y la lista de los números de todos los bloques libres se mantiene en un bloque reservado del disco.

file_sys_10

Este artículo es una contribución de Aakansha yadav 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *