domingo, 12 de diciembre de 2010

5.3 Implementación de sistemas de archivos

Se consideran aspectos tales como:

  • La forma de almacenamiento de archivos y directorios.
  • La administración del espacio en disco.
  • La forma de hacerlo de manera eficiente y confiable.

Se deben tener presentes problemas tales como la “fragmentación” creciente del espacio en disco:

  • Ocasiona problemas de performance al hacer que los archivos se desperdiguen a través de bloques muy dispersos.

Implementación de archivos

El aspecto clave de la implantación del almacenamiento de archivos es el registro de los bloques asociados a cada archivo.

Algunos de los métodos utilizados son los siguientes:

  • Asignación contigua:
    • Los archivos son asignados a áreas contiguas de almacenamiento secundario.
    • Las principales ventajas son:
      • Facilidad de implantación, ya que solo se precisa el número del bloque de inicio para localizar un archivo.
    • Los principales defectos son:
      • Se debe conocer el tamaño máximo del archivo al crearlo.
      • Produce una gran fragmentación de los discos.
  • Asignación por lista enlazada:
      • Las entradas en el directorio de usuarios apuntan al primer bloque de cada archivo.
      • Cada uno de los bloques de longitud fija que forman un archivo contiene dos partes:
        • Un bloque de datos, Un apuntador al bloque siguiente.
  • Asignación por lista enlazada empleando índices:
    • Los apuntadores son colocados en varios bloques de índices separados:
      • Cada bloque de índices contiene un número fijo de elementos.
      • Cada entrada contiene un identificador de registros y un apuntador a ese registro.
      • Si es necesario utilizar más de un bloque de índices para describir un archivo, se encadena una serie de bloques de índices.
  • Nodos-i (nodos índices):

Se asocia a cada archivo una pequeña tabla, llamada nodo-i (nodo índice):

Contiene los atributos y direcciones en disco de los bloques del archivo.

Se traslada del disco a la memoria principal al abrir el archivo.

Implementación de directorios

Para abrir un archivo el S.O. utiliza información del directorio:

  • El directorio contiene la información necesaria para encontrar los bloques en el disco.
  • El tipo de información varía según el sistema.

La principal función del sistema de directorios es asociar el nombre del archivo con la información necesaria para localizar los datos.

Un aspecto íntimamente ligado con esto es la posición de almacenamiento de los atributos:

  • Una posibilidad es almacenarlos en forma directa dentro del dato del directorio.
  • Otra posibilidad es almacenar los atributos en el nodo-i en vez de utilizar la entrada del directorio.

Administración del espacio en disco

Existen dos estrategias generales para almacenar un archivo de “n” bytes, Asignar “n” bytes consecutivos de espacio en el disco:

  • Tiene el problema de que si un archivo crece será muy probable que deba desplazarse en el disco, lo que puede afectar seriamente al rendimiento.

Tamaño del bloque:

Dada la forma en que están organizados los bloques, el sector, la pista y el cilindro son los candidatos obvios como unidades de asignación.

Hay que recordar que el tiempo de lectura de un bloque de disco es la suma de los tiempos de:

  • Búsqueda.
  • Demora rotacional.
  • Transferencia.

Registro de los bloques libres:

Se utilizan por lo general dos métodos:

  • La lista de bloques libres como lista ligada.
  • Un mapa de bits.

Mapa de bits:

  • Un disco con “n” bloques necesita un mapa de bits con “n” bits.
  • Los bloques libres se representa con “1” y los asignados con “0” (o viceversa).
  • Generalmente este método es preferible cuando existe espacio suficiente en la memoria principal para contener completo el mapa de bits.

Confiabilidad del sistema de archivos

Es necesario proteger la información alojada en el sistema de archivos, efectuando los resguardos correspondientes.

De esta manera se evitan las consecuencias generalmente catastróficas de la pérdida de los sistemas de archivos.

Las pérdidas se pueden deber a problemas de hardware, software, hechos externos, etc.

Se utilizan soluciones por hardware y por software.

La solución en hardware:

  • Consiste en dedicar un sector del disco a la lista de bloques defectuosos.
  • Al inicializar el controlador por primera vez:
    • Lee la “lista de bloques defectuosos”.
    • Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
    • Registra la asociación en la lista de bloques defectuosos.
    • En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto.

La solución en software:

  • Requiere que el usuario o el sistema de archivos construyan un archivo con todos los bloques defectuosos.
  • Se los elimina de la “lista de bloques libres”.
  • Se crea un “archivo de bloques defectuosos”:
    • Esta constituido por los bloques defectuosos.
    • No debe ser leído ni escrito.
    • No se debe intentar obtener copias de respaldo de este archivo.

Respaldos (copias de seguridad o de back-up):

Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles o rígidos).

Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo, utilizándolas de a pares:

  • Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.
  • Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa.

Rendimiento del sistema de archivos

El acceso al disco es mucho más lento que el acceso a la memoria:

  • Los tiempos se miden en milisegundos y en nanosegundos respectivamente.
  • Se debe reducir el número de accesos a disco.

La técnica más común para reducir los accesos a disco es el bloque caché o buffer caché:

  • Se utiliza el término ocultamiento para esta técnica (del francés “cacher”: ocultar).
  • Un caché es una colección de bloques que pertenecen desde el punto de vista lógico al disco, pero que se mantienen en memoria por razones de rendimiento.

Uno de los algoritmos más comunes para la administración del caché es el siguiente:

  • Verificar todas las solicitudes de lectura para saber si el bloque solicitado se encuentra en el caché.
  • En caso afirmativo, se satisface la solicitud sin un acceso a disco.
  • En caso negativo, se lee para que ingrese al caché y luego se copia al lugar donde se necesite.

Una técnica importante para aumentar el rendimiento de un sistema de archivos es la reducción de la cantidad de movimientos del brazo del disco (mecanismo de acceso):

  • Se deben colocar los bloques que probablemente tengan un acceso secuencial, próximos entre sí, preferentemente en el mismo cilindro.
  • Los nodos-i deben estar a mitad del disco y no al principio, reduciendo a la mitad el tiempo promedio de búsqueda entre el nodo-i y el primer bloque del archivo.

Sistemas de archivos estructurados por diario

No hay comentarios:

Publicar un comentario