SlideShare ist ein Scribd-Unternehmen logo
1 von 87
Downloaden Sie, um offline zu lesen
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)




               Gestión de Ficheros y Directorios



                                                          Transparencias basadas en el libro de referencia:
                                                                Sistemas operativos. Una visión aplicada.
                                         J. Carretero, F.García, P. de Miguel, F. Pérez. McGraw Hill 2001

                                                                              Curso 2005-2006
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                           Contenido

  •   Visión lógica y física del sistemas de archivos
  •   Archivos
  •   Directorios
  •   Sistemas de archivos
  •   El servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                              Visión lógica y física

  • Visión lógica:
        – Archivos
        – Directorios
        – Sistemas de archivos y particiones
  • Visión física:
        – Bloques o bytes ubicados en dispositivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                   Función principal

  • El Sistema de Ficheros establece una
    correspondencia entre los archivos y los
    dispositivos lógicos.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                    Características para el usuario
 • Almacenamiento permanente (no volátil) de la
   información.
 • Información estructurada de forma lógica.
 • Nombres lógicos y estructurados.
 • No están ligados al ciclo de vida de una aplicación
   particular.
 • Abstrae los dispositivos de almacenamiento
   físicos.
 • Se accede a través de llamadas al Sistema
   Operativo.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                Sistema de archivos
 • Sin sistema de archivos, el acceso a dispositivos
   es:
       – Incómodo
       – No seguro
 • El sistema de archivos es la capa software entre
   usuarios y dispositivos.
 • Objetivos:
       – Suministrar una visión lógica de los dispositivos
       – Ofrecer primitivas de acceso independientes
       – Garantizar mecanismos de protección
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                           Contenido

  •   Visión lógica y física del sistemas de archivos
  •   Archivos
  •   Directorios
  •   Sistemas de archivos
  •   El servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                            Archivos: visión lógica
 • Conjunto de información relacionada con entidad
   lógica propia.
 • Estructura de archivo:
       – Secuencia de bytes.



       – Registros (de tamaño fijo o variables).
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                               Concepto de archivo
 • Espacio lógico de variables contiguas usado para
   almacenar datos.
 • Tipos de archivos:
       – Datos:
             • Numéricos
             • Caracteres
             • Binarios
       – Programas:
             • Código fuente
             • Código objeto
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                              Atributos del archivo
 • Nombre: Definido por el usuario
 • Identificación única del archivo y del usuario: Descriptor
   interno del archivo, propietario y grupo.
 • Tipo: Formato del archivo.
 • Tamaño: Número de bytes que ocupa
 • Protección: Control de acceso al archivo.
 • Información temporal: De creación, modificación, etc.
 • Información de control: Archivo oculto, de sistema,
   directorio.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                       Representación del archivo
 • La estructuración de los archivos depende de cada
   Sistema Operativo:
       – Nodo-i de UNIX
       – Registro MFT de Windows
       – Entrada de MS-DOS
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


              Nombres de ficheros y extensiones
• Característico de cada sistemas de archivos.
• Longitud: Puede ser fija (MS-DOS) o variable (UNIX).
• Extensiones: Pueden ser obligatorias o no. A veces se puede
  concatenar más de una extensión.
• Algunos sistemas operativos
  son sensibles a mayúsculas
  (UNIX) y otros no (Windows).
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Estructura de un archivo
• Ninguna. Se representa mediante una secuencia de
  palabras o bytes (UNIX).
• Estructuras de registros:
     – Longitud fija
     – Longitud variable
     – Árbol de registros.
• La mayoría de los Sistemas Operativos proporcionan una
  estructura de archivos simple, a fin de que cada aplicación
  lo interprete y gestione de la mejora manera posible.
• Todos los Sistemas Operativos reconocen sus archivos
  ejecutables: ligado a la gestión de memoria y E/S.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Estructura de un archivo
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


      Estructura de un archivo ejecutable UNIX
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                   Archivos: visión lógica y física
    • Usuario: visión lógica
    • Sistema Operativo: visión física unida a dispositivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                             Archivos: visión física
    • Bloque:
          – Unidad de transferencia
          – 2n sectores
          – Parámetro fijo por sistema de archivos
    • Agrupación:
          – Unidad de asignación
          – 2p bloques
          – Aumenta la secuencialidad del archivo
    • Descripción de la estructura física:
          – Bloques utilizados
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


           Descripción física en MS-DOS (FAT)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


            Descripción física en UNIX (nodo-i)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                 Métodos de acceso
 • Acceso secuencial: lectura de los bytes en
   orden ascendente.
       – read next, write next, reset, rewind, …
       – Lectura: posición = posición + datos leídos
       – Dispositivos: cintas
       – ISAM: método de acceso secuencial indexado
 • Acceso directo.
       – read n, write n, goto n
       – n: número de bloque
       – Dispositivos: discos magnéticos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


        Archivos: semántica de coutilización (I)

 • Problemas potenciales cuando varios
   usuarios intentan acceder al mismo archivo
   simultáneamente.
 • Semántica de coutilización: Especifica qué
   ocurre cuando varios procesos acceden de
   forma simultánea al mismo archivo y
   especifica el momento en el que las
   modificaciones que realiza un proceso
   pueden ser observadas por el resto.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


       Archivos: semántica de coutilización (II)
 • Semántica UNIX (POSIX):
       – Las escrituras son inmediatamente visibles.
       – Los procesos pueden compartir archivos.
 • Semántica de sesión:
       – Los cambios se hacen visibles al cerrar el archivo.
       – Un archivo puede tener varias imágenes.
 • Semántica de versiones:
       – Actualizaciones sobre copias o “versiones”.
       – Sólo son visibles cuando se consolidan (sincronización).
 • Semántica de archivos inmutables:
       – El archivo sólo se puede compartir para lectura.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                           Contenido

  •   Visión lógica y física del sistemas de archivos
  •   Archivos
  •   Directorios
  •   Sistemas de archivos
  •   El servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                             Concepto de directorio

  • Objeto que relaciona de forma unívoca un
    nombre de archivo con su descriptor
    interno.
  • Organizan y proporcionan información
    sobre la estructuración de los sistemas de
    archivos.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Directorio: visión lógica

  • Esquema jerárquico.
  • Cuando se abre un archivo, el SO busca su
    nombre en la estructura de directorios.
  • La organización jerárquica de un
    directorio:
        – Simplifica el nombrado de archivos
        – Proporciona una gestión de la distribución: se
          agrupan archivos de forma lógica
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Ejemplo: Explorador de Windows
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Estructura de directorios

  • Tanto la estructura del directorio como los archivos
    residen en disco.
  • La estructura de un directorio se suele implementar
    como la de un archivo.
  • Información: nombre, longitud máxima, dirección,
    propietario, …
  • ¿Qué información se debe incluir en cada entrada de
    directorio? Dos alternativas:
        – Todos los atributos del archivo referenciado
        – Sólo identificador del archivo. Los atributos se almacenan en
          el propio archivo
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Ejemplo de entradas de directorios



                 Un solo nivel de directorio
                                                          Con detalles de archivo




           Posibilidad de directorios jerárquicos




                                                          Sin detalles de archivo
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                       Organización del directorio

  • Eficiencia: Localización rápida de archivos.
  • Nombrado: Conveniente y sencillo para los usuarios.
        – Dos archivos pueden tener el mismo nombre si están en
          directorios diferentes
        – Mismo archivo con varios nombres distintos
        – Nombres de longitud variable
  • Agrupación: Asociación lógica de los archivos según
    sus propiedades (p.ej. programas C, juegos, …).
  • Estructurado: Operaciones definidas y ocultación.
  • Sencillez: Alta usabilidad.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                             Directorio de un nivel
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                          Directorio de dos niveles
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                Directorio con estructura de árbol
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                Directorio con estructura de árbol

  • Los nombres absolutos contienen toda la ruta.
  • Los nombres relativos parten del directorio de trabajo:
  • Cambio de directorio:
        – cd /spell/mail/prog
        – cd prog
  • Crear subdirectorio: mkdir <nombre>
  • Ejemplo:
        – cd /spell/mail
        – mkdir count
        – ls /spell/mail/count
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                   Directorio de grafo acíclico (I)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                  Directorio de grafo acíclico (II)
• link: archivo con varios nombres. Control de
  enlaces.
      – Distintas entradas de directorio contienen el mismo
        descriptor de archivo (compartido).
• Borrado de archivos: Un archivo no se puede
  borrar hasta que no se hayan eliminado todos los
  enlaces a él.
• Problema grave: Existencia de bucles en el árbol.
      – Solución: Permitir enlaces sólo a archivos (no a
        subdirectorios).
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


          Interpretación de nombres en Linux (I)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


          Interpretación de nombres en Linux (II)
• Interpretar users/miguel/claves
      – Traer a memoria entradas de archivo con nodo-i 2
      – Buscar en users. Se obtiene el nodo-i 342
      –   Traer a memoria entradas de archivo con nodo-i 342
      –   Buscar en miguel. Se obtiene el nodo-i 256
      –   Traer a memoria entradas de archivo con nodo-i 256
      –   Buscar en claves. Se obtiene el nodo-i 758
      –   Se lee nodo-i, con los datos del archivo
• ¿Cuándo parar?
      – Nodo-i del archivo encontrado
      – No se ha encontrado y no hay más subdirectorios
      – El directorio no contiene la siguiente componente del nombre (p.ej. miguel).
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                            Jerarquía de directorios
• ¿Árbol único de directorios?
     – Por dispositivo lógico en Windows (p.ej. C:usermiguelclaves,
       J:programaspascal)
     – Para todo el sistema en UNIX (/user/miguel/claves,
       /programas/pascal)
• En un árbol único:
     – Hacen falta servicios para construir la jerarquía: mount y umount.
           • mount /dev/hda3 /users
           • umount /users
     – Ventajas: Imagen única del sistema. Ocultan el tipo de dispositivo.
     – Desventajas: Complican la traducción de nombres. Problemas con
       enlaces físicos.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Montado de Sistemas de archivos o particiones
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                           Contenido

  •   Visión lógica y física del sistemas de archivos
  •   Archivos
  •   Directorios
  •   Sistemas de archivos
  •   El servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Sistemas de archivos y particiones

  • El sistema de archivos permite organizar la
    información dentro de los dispositivos de
    almacenamiento secundario en un formato inteligible
    para el SO.
  • Previamente a la instalación del sistema de archivos es
    necesario dividir los discos en particiones o volúmenes.
  • Partición: Porción de un disco a la que se dota de
    identidad propia.
  • El SO debe crear los sistemas de archivos dentro de
    esas particiones.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Sistemas de archivos y particiones
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Sistemas de archivos y particiones
• Descripción de sistemas de archivos:
     – El sector de arranque en MS-DOS
     – El superbloque en UNIX
• Relación sistema de archivos-dispositivo:
     – Típico: 1 dispositivo – N sistemas de archivo
       (particiones)
     – Grandes archivos: N dispositivos – 1 sistema de archivos
     – Típicamente cada dispositivo se divide en una o más
       particiones.
     – La tabla de particiones indica el principio, el tamaño y el
       tipo de cada partición.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Bloques y Agrupaciones
• Bloque: Asociación lógica de sectores de disco. Unidad de
  transferencia mínima que usa el sistema de archivos.
     – Optimizar la eficiencia de la E/S de los dispositivos secundarios
       de almacenamiento.
     – Todos los Sistemas Operativos proporcionan un tamaño de bloque
       por defecto.
     – Tamaño de bloque definible por el usuario (habitualmente).
• Agrupación: Conjunto de bloques que se gestionan como
  una unidad lógica de almacenamiento.
     – El problemas de las asignaciones (y bloques grandes) es la
       existencia de fragmentación interna.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

 Tamaño del bloque, ancho de banda y uso del disco
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


              Estructuras de sistemas de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Superbloque de sistema de archivos en LINUX
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                        Otros sistemas de archivos

  •    Fast File System
  •    EXT2 (Extended File System)
  •    Archivos con bandas
  •    LFS (Log structured File System)
  •    Sistemas de archivos paralelos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                 Estructura del FFS
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Estructura de un sistema de archivos con banda
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                           Contenido

  •   Visión lógica y física del sistemas de archivos
  •   Archivos
  •   Directorios
  •   Sistemas de archivos
  •   El servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                               Servidor de archivos

  • A fin de proporcionar un acceso eficiente y
    sencillo a los dispositivos de almacenamiento,
    todos los SO tienen un servidor de archivos, que
    permite almacenar, buscar y leer datos
    fácilmente.
  • Objetivos de diseño:
        – Definir la visión de usuario del sistema de E/S
        – Definir los algoritmos y estructuras de datos para
          relacionar esta visión con el sistema físico
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


              Estructura del servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                     Sistema de archivos virtuales
• Interfaz de llamadas de entrada/salida del sistema.
  Transmite al módulo de organización de archivos la
  información necesaria para ejecutar los servicios pedidos
  por los usuarios.
• Servicios:
      –   Manejo de directorios
      –   Gestión de nombres
      –   Algunos servicios de seguridad
      –   Integración de distintos tipos de sistemas de archivos
• Nodo virtual: Estructura de información que incluye las
  características mínimas comunes a todos los sistemas de
  archivos subyacentes y que enlaza con un descriptor de
  archivo de cada tipo particular.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


          Estructura de un nodo virtual de UNIX
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


            Módulo de organización de archivos
• Proporciona el modelo del archivo del sistema operativo y los
  servicios de archivos.
• Relaciona la imagen lógica del archivo con su imagen física,
  proporcionando algoritmos para trasladar direcciones lógicas de
  bloques a sus correspondientes direcciones físicas.
• Gestiona el espacio de los sistemas de archivos, la asignación de
  bloques a archivos y el manejo de los descriptores de archivo
  (nodos-i en UNIX o registros de Windows NT).
• Un módulo de este estilo por cada tipo de archivo soportado
  (UNIX, AFS, EFS, …).
• Se proporcionan servicios para pseudo-archivos, como los del
  sistema de archivos proc.
• Las llamadas de gestión de archivos y de directorios particulares de
  cada sistema de archivos se resuelven en el módulo de organización
  de archivos. Para ello, se usa la información existente en el nodo-i
  del archivo afectado por las operaciones.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                Servidor de bloques
• Se encarga de emitir los mandatos genéricos para leer y escribir
  bloques a los manejadores de dispositivo.
• La E/S de bloques de archivo, y sus posibles optimizaciones, se
  lleva a cabo en este nivel del servidor de archivos.
• Las operaciones se traducen a llamadas de los manejadores de cada
  tipo de dispositivo específico y se pasan al nivel inferior del sistema
  de archivos.
• Esta capa oculta los distintos tipos de dispositivos, usando nombres
  lógicos para los mismos. P. ej., /dev/hda3 será un dispositivo tipo
  hard disk (hd), cuyo nombre principal es a y en el cual se trabaja
  sobre su partición 3.
• Los mecanismos de optimización de la E/S, como la cache de
  bloques, se incluyen en este nivel.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Descomposición en operaciones de bloques (I)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Descomposición en operaciones de bloques (II)
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                      Manejadores de dispositivos
  • Un manejador por cada dispositivo o clase de
    dispositivo.
  • Recibe órdenes de E/S de alto nivel (como
    move_to_block 234) y las traduce al formato que
    entiende el controlador del dispositivo.
  • Cada dispositivo tiene una cola de peticiones
    pendientes, de forma que un manejador puede atender
    simultáneamente a varios dispositivos del mismo tipo.
  • Una de las funciones principales es recibir las
    peticiones de E/S y colocarlas en el lugar adecuado de
    la cola de peticiones del dispositivo afectado
        – La política de inserción en cada cola puede ser diferente,
          dependiendo del tipo de dispositivo o de su prioridad
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


        Flujo de datos en el servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Estructuras de datos del servidor de archivos (I)
 • Tabla de nodos-v: almacena en memoria la información del
   nodo-v existente en el disco y otra que se usa dinámicamente
   cuando el archivo está abierto.
       – Problema: si sólo hay un campo de apuntador, cada operación de un
         proceso afectaría a todas las demás.
       – Posible solución: incluir la información relativa al archivo dentro del
         bloque de descripción del proceso (BCP).
 • Tabla de archivos abiertos (tdaa) por un proceso, dentro del
   BCP, con sus descriptores temporales y el valor del apuntador de
   posición del archivo para ese proceso.
       – El tamaño de esta tabla define el máximo número de archivos que cada
         proceso puede tener abierto de forma simultánea.
       – El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena de
         forma ordenada y siempre se ocupa la primera posición libre de la tabla.
       – En los sistemas UNIX, cada proceso tiene tres descriptores de archivos
         abiertos: entrada estándar, fd = 0, salida estándar , fd = 1, error estándar,
         fd = 2.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


Estructuras de datos del servidor de archivos (II)
 • Tabla intermedia nodo-i-posición: entre la tabla de
   archivos del BCP y la tabla de nodos-i. Dicha tabla
   incluye:
       – La entada del nodo-i del archivo abierto en la tabla de nodos-i.
       – El apuntador de posición correspondiente al proceso, o
         procesos, que usan el archivo durante esa sesión.
       – El modo de apertura del archivo.
 • Tabla de nodos-i: almacena en memoria la información
   del nodo-i existente en el disco y otra que se usa
   dinámicamente y que sólo tiene sentido cuando el
   archivo está abierto.
       – Esta tabla limita el número de máximo de archivos abiertos en
         el sistema de forma simultánea.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                   Tablas del servidor de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Correspondencia bloques-archivos
• ¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos
  corresponder con la imagen del archivo que tiene la aplicación?
• Asignación de bloques contiguos.
      – Sencillo de implementar. El rendimiento de la E/S es muy bueno.
      – Si no se conoce el tamaño total del archivo cuando se crea, puede ser
        necesario buscar un nuevo hueco de bloques consecutivos cada vez que el
        archivo crece.
      – Fragmentación externa à compactar el disco.
• Asignación de bloques discontiguos.
      –   Se asigna al archivo el primer bloque que se encuentre libre.
      –   No hay fragmentación externa del disco ni búsqueda de huecos.
      –   Los archivos pueden crecer mientras exista espacio de disco.
      –   Complica la implementación de la imagen de archivo à mapa de bloques
          del archivo.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                            Mecanismos enlazados
     •Listas o índices enlazados: desde cada entrada de un bloque
     existe un enlace al siguiente bloque del archivo.
     •Ejemplo: Tabla FAT de Windows
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                            Mecanismos indexados
     •Cada archivo tiene sus bloques de índice que incluyen
     apuntadores a los bloques de disco del archivo.
        - El orden lógico se consigue mediante la inserción
        de los apuntadores en orden creciente, a partir del
        primero, en los bloques de índices.
        - Ventaja: Basta con traer a memoria el bloque de
        índices donde está el apuntador a los datos para tener
        acceso al bloque de datos. Si un apuntador de bloque
        ocupa 4 bytes y el bloque es de 4 Kbytes, con un
        único acceso a disco tendremos 1024 apuntadores a
        bloques de índices.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                    Mapa de bloques en un nodo-i
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                           Gestión de espacio libre
• Mapas de bits, o vectores de bits: un bit por recurso existente
  (descriptor de archivo, bloque o agrupación). Si el recurso está
  libre, el valor del bit asociado al mismo es 1, si está ocupado es 0.
      – Ej.: Sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 están ocupados y el
        resto libres, y en el que los descriptores de archivo 2, 3 y 4 están ocupados.
        Sus mapas de bits serán:


      – Fácil de implementar y sencillo de usar. Eficiente si el dispositivo no está
        muy lleno o muy fragmentado.
• Listas de recursos libres: mantener enlazados en una lista todos los
  recursos disponibles (bloques o descriptores de archivos)
  manteniendo un apuntador al primer elemento de la lista.
      – Este método no es eficiente, excepto para dispositivos muy llenos y
        fragmentados.
      – Uso de agrupaciones.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                     Ejemplo de listas de recursos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                       Incremento de prestaciones
• Basados en el uso de almacenamiento intermedio de
  datos de E/S en memoria principal. Estos mecanismos
  son de dos tipos:
      – Discos RAM, cuyos datos están almacenados sólo en memoria.
            • Aceptan todas las operaciones de cualquier otro sistema de archivos y
              son gestionados por el usuario.
            • Pseudo-dispositivos para almacenamiento temporal o para operaciones
              auxiliares del Sistema Operativo. Contenido volátil.
      – Cache de datos, instaladas en secciones de memoria principal
        controladas por el Sistema Operativo, donde se almacenan
        datos para optimizar accesos posteriores.
            • Se basan en la existencia de proximidad espacial y temporal en las
              referencias a los datos de E/S.
            • Dos caches importantes dentro del servidor de archivos: cache de
              nombres y cache de bloques.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                               Cache de bloques (I)

• Fundamento:
      – Proximidad espacial
      – Proximidad temporal
      – Dos clases de flujos de E/S:
            • Usan una sola vez cada bloque
            • Usan repetidamente los bloques
      – Acceso a disco mucho más lento que el acceso
        a memoria
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                              Cache de bloques (II)

       •Estructura de datos en memoria con los bloques más
       frecuentemente utilizados




           - Lecturas adelantadas
           - Limpieza de la cache (sync)
       •Principal problema: fiabilidad del sistema de archivos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                Flujo de datos con cache de datos
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                             Políticas de reemplazo
• Algoritmo:
      – Comprobar si el bloque a leer está en la cache.
            • En caso de que no esté, se lee del dispositivo y se copia a la cache.
            • Si la cache está llena, es necesario hacer un hueco para el nuevo bloque
              reemplazando uno de los existentes: políticas de reemplazo.
            • Si el bloque ha sido escrito (sucio): política de escritura.
• Políticas de reemplazo: FIFO, segunda oportunidad,
  MRU, LRU, …
      – La política de reemplazo más usada es la LRU.
      – Los bloques más usados tienden a estar en la cache, y por tanto
        no van al disco. La utilización estricta de esta política puede
        crear problemas de fiabilidad en el sistema de archivos si el
        computador falla.
      – La mayoría de los servidores de archivos distinguen entre
        bloque especiales y bloques de datos.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                               Políticas de escritura
• Escritura inmediata (write-through): se escribe cada vez que se
  modifica el bloque.
     – No hay problema de fiabilidad, pero se reduce el rendimiento del sistema.
• Escritura diferida (write-back): sólo se escriben los datos a disco
  cuando se eligen para su reemplazo por falta de espacio en la cache.
     – Optimiza el rendimiento, pero genera los problemas de fiabilidad descritos.
• Escritura retrasada (delayed-write): se escriben a disco los bloques de
  datos modificados en la cache de forma periódica (30 segundos en
  UNIX).
     –   Compromiso entre rendimiento y fiabilidad.
     –   Reduce la extensión de los posibles daños por pérdida de datos.
     –   Los bloques especiales se escriben inmediatamente al disco.
     –   No se puede quitar un disco del sistema sin antes volcar los datos de la cache.
• Escritura al cierre (write-on-close): en el momento en el que se cierra
  un archivo, se vuelcan al disco los bloques del mismo que tiene datos
  actualizados.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


 Montado de sistemas de archivos o particiones
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                              Enlaces
• Permite que dos o más nombres hagan referencia al
  mismo archivo.
• Dos tipos:
      – Enlace físico
            • El enlace sólo se elimina cuando se borran todos los enlaces.
            • Sólo se permite enlazar archivos (no directorios) del mismo volumen.

      – Enlace simbólico
            • El archivo se elimina cuando se elimina el enlace físico. Si permanece el
              enlace simbólico provoca errores al tratar de accederlo.
            • Se puede hacer con archivos y directorios.
            • Se puede hacer entre archivos de diferentes sistemas de archivos.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                        Enlace físico
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                   Enlace simbólico
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                               Ejemplo de montado
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


               Fiabilidad del sistema de archivos
• Fallos HW y SW pueden provocar fallos en un volumen.
• Soluciones:
      – Hardware:
            • Controladores que tratan con sectores con fallos
            • Discos con información redundante (RAID)
      – Backups (copias de respaldo)
            • En discos
            • En cintas
            • Backups incrementales
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                          Redundancia con paridad
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


            Consistencia del sistema de archivos
• Dos aspectos importantes:
      – Comprobar que la estructura física del sistema de archivos es coherente.
      – Verificar que la estructura lógica del sistema de archivos es correcta.
• Estructura física: se comprueba la superficie del dispositivo de
  almacenamiento.
• Estructura lógica:
      – Se comprueba que el contenido del superbloque responde a las
        características del sistema de archivos.
      – Se comprueba que los mapas de bits de nodos-i se corresponden con los
        nodos-i ocupados en el sistema de archivos.
      – Se comprueba que los mapas de bits de bloques se corresponden con los
        bloques asignados a archivos.
      – Se comprueba que ningún bloque esté asignado a más de un archivo.
      – Se comprueba el sistema de directorios del sistema de archivos, para ver que
        un mismo nodo-i no está asignado a más de un directorio.
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                              Estado de los bloques
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                                      Otros servicios
• Actualización atómica, o indivisible: asegura a los
  usuarios que sus operaciones están libres de interferencia
  con las de otros usuarios y que la operación se realiza
  completamente o no tiene ningún efecto en el sistema.
• Transacciones: permite ejecutar operaciones atómicas
  que agrupan a varias operaciones de E/S y que se
  ejecutarán con semántica todo o nada.
• Replicación: mantiene varias copias de los datos y otros
  recursos del sistema. Gestión de copias:
      – Copia primaria
      – Gestión colectiva
AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)


                          Gestión de la replicación

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
Operating System Concepts_1.pptx
Operating System Concepts_1.pptxOperating System Concepts_1.pptx
Operating System Concepts_1.pptxzahid7578
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIXNatalia Ludeña
 
Concept of computer files for Grade 12 learners
Concept of computer files for Grade 12 learnersConcept of computer files for Grade 12 learners
Concept of computer files for Grade 12 learnerswellingtonoboh
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Operating System and Building Blocks
Operating System and Building BlocksOperating System and Building Blocks
Operating System and Building BlocksAnupritaBhoyar
 
Planificación de Discos en Linux
Planificación de Discos en LinuxPlanificación de Discos en Linux
Planificación de Discos en LinuxGabriel Arellano
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronizationAli Ahmad
 
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)Videoconferencias UTPL
 
File system.
File system.File system.
File system.elyza12
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridadJ M
 
Object relational database management system
Object relational database management systemObject relational database management system
Object relational database management systemSaibee Alam
 

Was ist angesagt? (20)

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Memoria
MemoriaMemoria
Memoria
 
Operating System Concepts_1.pptx
Operating System Concepts_1.pptxOperating System Concepts_1.pptx
Operating System Concepts_1.pptx
 
Deadlock
DeadlockDeadlock
Deadlock
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIX
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Concept of computer files for Grade 12 learners
Concept of computer files for Grade 12 learnersConcept of computer files for Grade 12 learners
Concept of computer files for Grade 12 learners
 
Raid Technology
Raid TechnologyRaid Technology
Raid Technology
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Operating System and Building Blocks
Operating System and Building BlocksOperating System and Building Blocks
Operating System and Building Blocks
 
Planificación de Discos en Linux
Planificación de Discos en LinuxPlanificación de Discos en Linux
Planificación de Discos en Linux
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
 
File system.
File system.File system.
File system.
 
Chapter 14 - Protection
Chapter 14 - ProtectionChapter 14 - Protection
Chapter 14 - Protection
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridad
 
Object relational database management system
Object relational database management systemObject relational database management system
Object relational database management system
 
Shared memory
Shared memoryShared memory
Shared memory
 
File management
File managementFile management
File management
 

Ähnlich wie Gestión archivos y directorios

Administracion De Archivos Vi
Administracion De Archivos ViAdministracion De Archivos Vi
Administracion De Archivos ViSistemOper
 
Eje temático 5 Diseño de archivos
Eje temático 5 Diseño de archivosEje temático 5 Diseño de archivos
Eje temático 5 Diseño de archivosNeus Mortis
 
Administradordearchivos 091202184832-phpapp01
Administradordearchivos 091202184832-phpapp01Administradordearchivos 091202184832-phpapp01
Administradordearchivos 091202184832-phpapp01Luis Duarte
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivosANDRES SALAZAR
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivoscgviviana
 
Presentacion diseño de archivos
Presentacion diseño de archivosPresentacion diseño de archivos
Presentacion diseño de archivosharoldrm
 
1471744226tema12archivo1pppt.ppt
1471744226tema12archivo1pppt.ppt1471744226tema12archivo1pppt.ppt
1471744226tema12archivo1pppt.pptGovindaRomero
 
diapositivas administracion
diapositivas administraciondiapositivas administracion
diapositivas administracioneny_laque_12
 
Diapositivas administracion
Diapositivas administracionDiapositivas administracion
Diapositivas administracioneny_laque_12
 
Controladora de perifericos
Controladora de perifericos Controladora de perifericos
Controladora de perifericos samuel mora
 
Diseño de archivos, grupo 4
Diseño de archivos, grupo 4Diseño de archivos, grupo 4
Diseño de archivos, grupo 4pandreaf
 
Sistemas de archivos .
Sistemas de archivos .Sistemas de archivos .
Sistemas de archivos .Camilo Velilla
 
Controladora de perifericos indices
Controladora de perifericos indicesControladora de perifericos indices
Controladora de perifericos indicesElizabeth Miño
 

Ähnlich wie Gestión archivos y directorios (20)

Administracion De Archivos Vi
Administracion De Archivos ViAdministracion De Archivos Vi
Administracion De Archivos Vi
 
Eje temático 5 Diseño de archivos
Eje temático 5 Diseño de archivosEje temático 5 Diseño de archivos
Eje temático 5 Diseño de archivos
 
Administradordearchivos 091202184832-phpapp01
Administradordearchivos 091202184832-phpapp01Administradordearchivos 091202184832-phpapp01
Administradordearchivos 091202184832-phpapp01
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Sistemas de archivos
Sistemas de archivosSistemas de archivos
Sistemas de archivos
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
Presentacion diseño de archivos
Presentacion diseño de archivosPresentacion diseño de archivos
Presentacion diseño de archivos
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
1471744226tema12archivo1pppt.ppt
1471744226tema12archivo1pppt.ppt1471744226tema12archivo1pppt.ppt
1471744226tema12archivo1pppt.ppt
 
diapositivas administracion
diapositivas administraciondiapositivas administracion
diapositivas administracion
 
Diapositivas administracion
Diapositivas administracionDiapositivas administracion
Diapositivas administracion
 
Sistemas de archivo
Sistemas de archivoSistemas de archivo
Sistemas de archivo
 
Controladora de perifericos
Controladora de perifericos Controladora de perifericos
Controladora de perifericos
 
Diseño de archivos, grupo 4
Diseño de archivos, grupo 4Diseño de archivos, grupo 4
Diseño de archivos, grupo 4
 
Sistemas de archivos .
Sistemas de archivos .Sistemas de archivos .
Sistemas de archivos .
 
Controladora de perifericos indices
Controladora de perifericos indicesControladora de perifericos indices
Controladora de perifericos indices
 
Sistema de archivo
Sistema de archivoSistema de archivo
Sistema de archivo
 

Gestión archivos y directorios

  • 1. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de Ficheros y Directorios Transparencias basadas en el libro de referencia: Sistemas operativos. Una visión aplicada. J. Carretero, F.García, P. de Miguel, F. Pérez. McGraw Hill 2001 Curso 2005-2006
  • 2. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • Visión lógica y física del sistemas de archivos • Archivos • Directorios • Sistemas de archivos • El servidor de archivos
  • 3. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Visión lógica y física • Visión lógica: – Archivos – Directorios – Sistemas de archivos y particiones • Visión física: – Bloques o bytes ubicados en dispositivos
  • 4. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Función principal • El Sistema de Ficheros establece una correspondencia entre los archivos y los dispositivos lógicos.
  • 5. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Características para el usuario • Almacenamiento permanente (no volátil) de la información. • Información estructurada de forma lógica. • Nombres lógicos y estructurados. • No están ligados al ciclo de vida de una aplicación particular. • Abstrae los dispositivos de almacenamiento físicos. • Se accede a través de llamadas al Sistema Operativo.
  • 6. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistema de archivos • Sin sistema de archivos, el acceso a dispositivos es: – Incómodo – No seguro • El sistema de archivos es la capa software entre usuarios y dispositivos. • Objetivos: – Suministrar una visión lógica de los dispositivos – Ofrecer primitivas de acceso independientes – Garantizar mecanismos de protección
  • 7. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • Visión lógica y física del sistemas de archivos • Archivos • Directorios • Sistemas de archivos • El servidor de archivos
  • 8. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión lógica • Conjunto de información relacionada con entidad lógica propia. • Estructura de archivo: – Secuencia de bytes. – Registros (de tamaño fijo o variables).
  • 9. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Concepto de archivo • Espacio lógico de variables contiguas usado para almacenar datos. • Tipos de archivos: – Datos: • Numéricos • Caracteres • Binarios – Programas: • Código fuente • Código objeto
  • 10. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Atributos del archivo • Nombre: Definido por el usuario • Identificación única del archivo y del usuario: Descriptor interno del archivo, propietario y grupo. • Tipo: Formato del archivo. • Tamaño: Número de bytes que ocupa • Protección: Control de acceso al archivo. • Información temporal: De creación, modificación, etc. • Información de control: Archivo oculto, de sistema, directorio.
  • 11. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Representación del archivo • La estructuración de los archivos depende de cada Sistema Operativo: – Nodo-i de UNIX – Registro MFT de Windows – Entrada de MS-DOS
  • 12. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Nombres de ficheros y extensiones • Característico de cada sistemas de archivos. • Longitud: Puede ser fija (MS-DOS) o variable (UNIX). • Extensiones: Pueden ser obligatorias o no. A veces se puede concatenar más de una extensión. • Algunos sistemas operativos son sensibles a mayúsculas (UNIX) y otros no (Windows).
  • 13. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo • Ninguna. Se representa mediante una secuencia de palabras o bytes (UNIX). • Estructuras de registros: – Longitud fija – Longitud variable – Árbol de registros. • La mayoría de los Sistemas Operativos proporcionan una estructura de archivos simple, a fin de que cada aplicación lo interprete y gestione de la mejora manera posible. • Todos los Sistemas Operativos reconocen sus archivos ejecutables: ligado a la gestión de memoria y E/S.
  • 14. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo
  • 15. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo ejecutable UNIX
  • 16. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión lógica y física • Usuario: visión lógica • Sistema Operativo: visión física unida a dispositivos
  • 17. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión física • Bloque: – Unidad de transferencia – 2n sectores – Parámetro fijo por sistema de archivos • Agrupación: – Unidad de asignación – 2p bloques – Aumenta la secuencialidad del archivo • Descripción de la estructura física: – Bloques utilizados
  • 18. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descripción física en MS-DOS (FAT)
  • 19. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descripción física en UNIX (nodo-i)
  • 20. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Métodos de acceso • Acceso secuencial: lectura de los bytes en orden ascendente. – read next, write next, reset, rewind, … – Lectura: posición = posición + datos leídos – Dispositivos: cintas – ISAM: método de acceso secuencial indexado • Acceso directo. – read n, write n, goto n – n: número de bloque – Dispositivos: discos magnéticos
  • 21. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: semántica de coutilización (I) • Problemas potenciales cuando varios usuarios intentan acceder al mismo archivo simultáneamente. • Semántica de coutilización: Especifica qué ocurre cuando varios procesos acceden de forma simultánea al mismo archivo y especifica el momento en el que las modificaciones que realiza un proceso pueden ser observadas por el resto.
  • 22. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: semántica de coutilización (II) • Semántica UNIX (POSIX): – Las escrituras son inmediatamente visibles. – Los procesos pueden compartir archivos. • Semántica de sesión: – Los cambios se hacen visibles al cerrar el archivo. – Un archivo puede tener varias imágenes. • Semántica de versiones: – Actualizaciones sobre copias o “versiones”. – Sólo son visibles cuando se consolidan (sincronización). • Semántica de archivos inmutables: – El archivo sólo se puede compartir para lectura.
  • 23. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • Visión lógica y física del sistemas de archivos • Archivos • Directorios • Sistemas de archivos • El servidor de archivos
  • 24. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Concepto de directorio • Objeto que relaciona de forma unívoca un nombre de archivo con su descriptor interno. • Organizan y proporcionan información sobre la estructuración de los sistemas de archivos.
  • 25. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio: visión lógica • Esquema jerárquico. • Cuando se abre un archivo, el SO busca su nombre en la estructura de directorios. • La organización jerárquica de un directorio: – Simplifica el nombrado de archivos – Proporciona una gestión de la distribución: se agrupan archivos de forma lógica
  • 26. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo: Explorador de Windows
  • 27. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de directorios • Tanto la estructura del directorio como los archivos residen en disco. • La estructura de un directorio se suele implementar como la de un archivo. • Información: nombre, longitud máxima, dirección, propietario, … • ¿Qué información se debe incluir en cada entrada de directorio? Dos alternativas: – Todos los atributos del archivo referenciado – Sólo identificador del archivo. Los atributos se almacenan en el propio archivo
  • 28. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de entradas de directorios Un solo nivel de directorio Con detalles de archivo Posibilidad de directorios jerárquicos Sin detalles de archivo
  • 29. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Organización del directorio • Eficiencia: Localización rápida de archivos. • Nombrado: Conveniente y sencillo para los usuarios. – Dos archivos pueden tener el mismo nombre si están en directorios diferentes – Mismo archivo con varios nombres distintos – Nombres de longitud variable • Agrupación: Asociación lógica de los archivos según sus propiedades (p.ej. programas C, juegos, …). • Estructurado: Operaciones definidas y ocultación. • Sencillez: Alta usabilidad.
  • 30. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de un nivel
  • 31. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de dos niveles
  • 32. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio con estructura de árbol
  • 33. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio con estructura de árbol • Los nombres absolutos contienen toda la ruta. • Los nombres relativos parten del directorio de trabajo: • Cambio de directorio: – cd /spell/mail/prog – cd prog • Crear subdirectorio: mkdir <nombre> • Ejemplo: – cd /spell/mail – mkdir count – ls /spell/mail/count
  • 34. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de grafo acíclico (I)
  • 35. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de grafo acíclico (II) • link: archivo con varios nombres. Control de enlaces. – Distintas entradas de directorio contienen el mismo descriptor de archivo (compartido). • Borrado de archivos: Un archivo no se puede borrar hasta que no se hayan eliminado todos los enlaces a él. • Problema grave: Existencia de bucles en el árbol. – Solución: Permitir enlaces sólo a archivos (no a subdirectorios).
  • 36. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Interpretación de nombres en Linux (I)
  • 37. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Interpretación de nombres en Linux (II) • Interpretar users/miguel/claves – Traer a memoria entradas de archivo con nodo-i 2 – Buscar en users. Se obtiene el nodo-i 342 – Traer a memoria entradas de archivo con nodo-i 342 – Buscar en miguel. Se obtiene el nodo-i 256 – Traer a memoria entradas de archivo con nodo-i 256 – Buscar en claves. Se obtiene el nodo-i 758 – Se lee nodo-i, con los datos del archivo • ¿Cuándo parar? – Nodo-i del archivo encontrado – No se ha encontrado y no hay más subdirectorios – El directorio no contiene la siguiente componente del nombre (p.ej. miguel).
  • 38. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Jerarquía de directorios • ¿Árbol único de directorios? – Por dispositivo lógico en Windows (p.ej. C:usermiguelclaves, J:programaspascal) – Para todo el sistema en UNIX (/user/miguel/claves, /programas/pascal) • En un árbol único: – Hacen falta servicios para construir la jerarquía: mount y umount. • mount /dev/hda3 /users • umount /users – Ventajas: Imagen única del sistema. Ocultan el tipo de dispositivo. – Desventajas: Complican la traducción de nombres. Problemas con enlaces físicos.
  • 39. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Montado de Sistemas de archivos o particiones
  • 40. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • Visión lógica y física del sistemas de archivos • Archivos • Directorios • Sistemas de archivos • El servidor de archivos
  • 41. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones • El sistema de archivos permite organizar la información dentro de los dispositivos de almacenamiento secundario en un formato inteligible para el SO. • Previamente a la instalación del sistema de archivos es necesario dividir los discos en particiones o volúmenes. • Partición: Porción de un disco a la que se dota de identidad propia. • El SO debe crear los sistemas de archivos dentro de esas particiones.
  • 42. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones
  • 43. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones • Descripción de sistemas de archivos: – El sector de arranque en MS-DOS – El superbloque en UNIX • Relación sistema de archivos-dispositivo: – Típico: 1 dispositivo – N sistemas de archivo (particiones) – Grandes archivos: N dispositivos – 1 sistema de archivos – Típicamente cada dispositivo se divide en una o más particiones. – La tabla de particiones indica el principio, el tamaño y el tipo de cada partición.
  • 44. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Bloques y Agrupaciones • Bloque: Asociación lógica de sectores de disco. Unidad de transferencia mínima que usa el sistema de archivos. – Optimizar la eficiencia de la E/S de los dispositivos secundarios de almacenamiento. – Todos los Sistemas Operativos proporcionan un tamaño de bloque por defecto. – Tamaño de bloque definible por el usuario (habitualmente). • Agrupación: Conjunto de bloques que se gestionan como una unidad lógica de almacenamiento. – El problemas de las asignaciones (y bloques grandes) es la existencia de fragmentación interna.
  • 45. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Tamaño del bloque, ancho de banda y uso del disco
  • 46. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de sistemas de archivos
  • 47. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Superbloque de sistema de archivos en LINUX
  • 48. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Otros sistemas de archivos • Fast File System • EXT2 (Extended File System) • Archivos con bandas • LFS (Log structured File System) • Sistemas de archivos paralelos
  • 49. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura del FFS
  • 50. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un sistema de archivos con banda
  • 51. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • Visión lógica y física del sistemas de archivos • Archivos • Directorios • Sistemas de archivos • El servidor de archivos
  • 52. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Servidor de archivos • A fin de proporcionar un acceso eficiente y sencillo a los dispositivos de almacenamiento, todos los SO tienen un servidor de archivos, que permite almacenar, buscar y leer datos fácilmente. • Objetivos de diseño: – Definir la visión de usuario del sistema de E/S – Definir los algoritmos y estructuras de datos para relacionar esta visión con el sistema físico
  • 53. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura del servidor de archivos
  • 54. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistema de archivos virtuales • Interfaz de llamadas de entrada/salida del sistema. Transmite al módulo de organización de archivos la información necesaria para ejecutar los servicios pedidos por los usuarios. • Servicios: – Manejo de directorios – Gestión de nombres – Algunos servicios de seguridad – Integración de distintos tipos de sistemas de archivos • Nodo virtual: Estructura de información que incluye las características mínimas comunes a todos los sistemas de archivos subyacentes y que enlaza con un descriptor de archivo de cada tipo particular.
  • 55. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un nodo virtual de UNIX
  • 56. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Módulo de organización de archivos • Proporciona el modelo del archivo del sistema operativo y los servicios de archivos. • Relaciona la imagen lógica del archivo con su imagen física, proporcionando algoritmos para trasladar direcciones lógicas de bloques a sus correspondientes direcciones físicas. • Gestiona el espacio de los sistemas de archivos, la asignación de bloques a archivos y el manejo de los descriptores de archivo (nodos-i en UNIX o registros de Windows NT). • Un módulo de este estilo por cada tipo de archivo soportado (UNIX, AFS, EFS, …). • Se proporcionan servicios para pseudo-archivos, como los del sistema de archivos proc. • Las llamadas de gestión de archivos y de directorios particulares de cada sistema de archivos se resuelven en el módulo de organización de archivos. Para ello, se usa la información existente en el nodo-i del archivo afectado por las operaciones.
  • 57. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Servidor de bloques • Se encarga de emitir los mandatos genéricos para leer y escribir bloques a los manejadores de dispositivo. • La E/S de bloques de archivo, y sus posibles optimizaciones, se lleva a cabo en este nivel del servidor de archivos. • Las operaciones se traducen a llamadas de los manejadores de cada tipo de dispositivo específico y se pasan al nivel inferior del sistema de archivos. • Esta capa oculta los distintos tipos de dispositivos, usando nombres lógicos para los mismos. P. ej., /dev/hda3 será un dispositivo tipo hard disk (hd), cuyo nombre principal es a y en el cual se trabaja sobre su partición 3. • Los mecanismos de optimización de la E/S, como la cache de bloques, se incluyen en este nivel.
  • 58. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descomposición en operaciones de bloques (I)
  • 59. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descomposición en operaciones de bloques (II)
  • 60. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Manejadores de dispositivos • Un manejador por cada dispositivo o clase de dispositivo. • Recibe órdenes de E/S de alto nivel (como move_to_block 234) y las traduce al formato que entiende el controlador del dispositivo. • Cada dispositivo tiene una cola de peticiones pendientes, de forma que un manejador puede atender simultáneamente a varios dispositivos del mismo tipo. • Una de las funciones principales es recibir las peticiones de E/S y colocarlas en el lugar adecuado de la cola de peticiones del dispositivo afectado – La política de inserción en cada cola puede ser diferente, dependiendo del tipo de dispositivo o de su prioridad
  • 61. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Flujo de datos en el servidor de archivos
  • 62. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de datos del servidor de archivos (I) • Tabla de nodos-v: almacena en memoria la información del nodo-v existente en el disco y otra que se usa dinámicamente cuando el archivo está abierto. – Problema: si sólo hay un campo de apuntador, cada operación de un proceso afectaría a todas las demás. – Posible solución: incluir la información relativa al archivo dentro del bloque de descripción del proceso (BCP). • Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus descriptores temporales y el valor del apuntador de posición del archivo para ese proceso. – El tamaño de esta tabla define el máximo número de archivos que cada proceso puede tener abierto de forma simultánea. – El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena de forma ordenada y siempre se ocupa la primera posición libre de la tabla. – En los sistemas UNIX, cada proceso tiene tres descriptores de archivos abiertos: entrada estándar, fd = 0, salida estándar , fd = 1, error estándar, fd = 2.
  • 63. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de datos del servidor de archivos (II) • Tabla intermedia nodo-i-posición: entre la tabla de archivos del BCP y la tabla de nodos-i. Dicha tabla incluye: – La entada del nodo-i del archivo abierto en la tabla de nodos-i. – El apuntador de posición correspondiente al proceso, o procesos, que usan el archivo durante esa sesión. – El modo de apertura del archivo. • Tabla de nodos-i: almacena en memoria la información del nodo-i existente en el disco y otra que se usa dinámicamente y que sólo tiene sentido cuando el archivo está abierto. – Esta tabla limita el número de máximo de archivos abiertos en el sistema de forma simultánea.
  • 64. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Tablas del servidor de archivos
  • 65. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Correspondencia bloques-archivos • ¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos corresponder con la imagen del archivo que tiene la aplicación? • Asignación de bloques contiguos. – Sencillo de implementar. El rendimiento de la E/S es muy bueno. – Si no se conoce el tamaño total del archivo cuando se crea, puede ser necesario buscar un nuevo hueco de bloques consecutivos cada vez que el archivo crece. – Fragmentación externa à compactar el disco. • Asignación de bloques discontiguos. – Se asigna al archivo el primer bloque que se encuentre libre. – No hay fragmentación externa del disco ni búsqueda de huecos. – Los archivos pueden crecer mientras exista espacio de disco. – Complica la implementación de la imagen de archivo à mapa de bloques del archivo.
  • 66. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mecanismos enlazados •Listas o índices enlazados: desde cada entrada de un bloque existe un enlace al siguiente bloque del archivo. •Ejemplo: Tabla FAT de Windows
  • 67. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mecanismos indexados •Cada archivo tiene sus bloques de índice que incluyen apuntadores a los bloques de disco del archivo. - El orden lógico se consigue mediante la inserción de los apuntadores en orden creciente, a partir del primero, en los bloques de índices. - Ventaja: Basta con traer a memoria el bloque de índices donde está el apuntador a los datos para tener acceso al bloque de datos. Si un apuntador de bloque ocupa 4 bytes y el bloque es de 4 Kbytes, con un único acceso a disco tendremos 1024 apuntadores a bloques de índices.
  • 68. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mapa de bloques en un nodo-i
  • 69. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de espacio libre • Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de archivo, bloque o agrupación). Si el recurso está libre, el valor del bit asociado al mismo es 1, si está ocupado es 0. – Ej.: Sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 están ocupados y el resto libres, y en el que los descriptores de archivo 2, 3 y 4 están ocupados. Sus mapas de bits serán: – Fácil de implementar y sencillo de usar. Eficiente si el dispositivo no está muy lleno o muy fragmentado. • Listas de recursos libres: mantener enlazados en una lista todos los recursos disponibles (bloques o descriptores de archivos) manteniendo un apuntador al primer elemento de la lista. – Este método no es eficiente, excepto para dispositivos muy llenos y fragmentados. – Uso de agrupaciones.
  • 70. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de listas de recursos
  • 71. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Incremento de prestaciones • Basados en el uso de almacenamiento intermedio de datos de E/S en memoria principal. Estos mecanismos son de dos tipos: – Discos RAM, cuyos datos están almacenados sólo en memoria. • Aceptan todas las operaciones de cualquier otro sistema de archivos y son gestionados por el usuario. • Pseudo-dispositivos para almacenamiento temporal o para operaciones auxiliares del Sistema Operativo. Contenido volátil. – Cache de datos, instaladas en secciones de memoria principal controladas por el Sistema Operativo, donde se almacenan datos para optimizar accesos posteriores. • Se basan en la existencia de proximidad espacial y temporal en las referencias a los datos de E/S. • Dos caches importantes dentro del servidor de archivos: cache de nombres y cache de bloques.
  • 72. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Cache de bloques (I) • Fundamento: – Proximidad espacial – Proximidad temporal – Dos clases de flujos de E/S: • Usan una sola vez cada bloque • Usan repetidamente los bloques – Acceso a disco mucho más lento que el acceso a memoria
  • 73. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Cache de bloques (II) •Estructura de datos en memoria con los bloques más frecuentemente utilizados - Lecturas adelantadas - Limpieza de la cache (sync) •Principal problema: fiabilidad del sistema de archivos
  • 74. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Flujo de datos con cache de datos
  • 75. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Políticas de reemplazo • Algoritmo: – Comprobar si el bloque a leer está en la cache. • En caso de que no esté, se lee del dispositivo y se copia a la cache. • Si la cache está llena, es necesario hacer un hueco para el nuevo bloque reemplazando uno de los existentes: políticas de reemplazo. • Si el bloque ha sido escrito (sucio): política de escritura. • Políticas de reemplazo: FIFO, segunda oportunidad, MRU, LRU, … – La política de reemplazo más usada es la LRU. – Los bloques más usados tienden a estar en la cache, y por tanto no van al disco. La utilización estricta de esta política puede crear problemas de fiabilidad en el sistema de archivos si el computador falla. – La mayoría de los servidores de archivos distinguen entre bloque especiales y bloques de datos.
  • 76. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Políticas de escritura • Escritura inmediata (write-through): se escribe cada vez que se modifica el bloque. – No hay problema de fiabilidad, pero se reduce el rendimiento del sistema. • Escritura diferida (write-back): sólo se escriben los datos a disco cuando se eligen para su reemplazo por falta de espacio en la cache. – Optimiza el rendimiento, pero genera los problemas de fiabilidad descritos. • Escritura retrasada (delayed-write): se escriben a disco los bloques de datos modificados en la cache de forma periódica (30 segundos en UNIX). – Compromiso entre rendimiento y fiabilidad. – Reduce la extensión de los posibles daños por pérdida de datos. – Los bloques especiales se escriben inmediatamente al disco. – No se puede quitar un disco del sistema sin antes volcar los datos de la cache. • Escritura al cierre (write-on-close): en el momento en el que se cierra un archivo, se vuelcan al disco los bloques del mismo que tiene datos actualizados.
  • 77. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Montado de sistemas de archivos o particiones
  • 78. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlaces • Permite que dos o más nombres hagan referencia al mismo archivo. • Dos tipos: – Enlace físico • El enlace sólo se elimina cuando se borran todos los enlaces. • Sólo se permite enlazar archivos (no directorios) del mismo volumen. – Enlace simbólico • El archivo se elimina cuando se elimina el enlace físico. Si permanece el enlace simbólico provoca errores al tratar de accederlo. • Se puede hacer con archivos y directorios. • Se puede hacer entre archivos de diferentes sistemas de archivos.
  • 79. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlace físico
  • 80. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlace simbólico
  • 81. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de montado
  • 82. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Fiabilidad del sistema de archivos • Fallos HW y SW pueden provocar fallos en un volumen. • Soluciones: – Hardware: • Controladores que tratan con sectores con fallos • Discos con información redundante (RAID) – Backups (copias de respaldo) • En discos • En cintas • Backups incrementales
  • 83. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Redundancia con paridad
  • 84. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Consistencia del sistema de archivos • Dos aspectos importantes: – Comprobar que la estructura física del sistema de archivos es coherente. – Verificar que la estructura lógica del sistema de archivos es correcta. • Estructura física: se comprueba la superficie del dispositivo de almacenamiento. • Estructura lógica: – Se comprueba que el contenido del superbloque responde a las características del sistema de archivos. – Se comprueba que los mapas de bits de nodos-i se corresponden con los nodos-i ocupados en el sistema de archivos. – Se comprueba que los mapas de bits de bloques se corresponden con los bloques asignados a archivos. – Se comprueba que ningún bloque esté asignado a más de un archivo. – Se comprueba el sistema de directorios del sistema de archivos, para ver que un mismo nodo-i no está asignado a más de un directorio.
  • 85. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estado de los bloques
  • 86. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Otros servicios • Actualización atómica, o indivisible: asegura a los usuarios que sus operaciones están libres de interferencia con las de otros usuarios y que la operación se realiza completamente o no tiene ningún efecto en el sistema. • Transacciones: permite ejecutar operaciones atómicas que agrupan a varias operaciones de E/S y que se ejecutarán con semántica todo o nada. • Replicación: mantiene varias copias de los datos y otros recursos del sistema. Gestión de copias: – Copia primaria – Gestión colectiva
  • 87. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de la replicación