Images

Unidad 5: Sistemas de Archivos

5.1 Concepto. 

Un “Archivo” es un conjunto de registros relacionados .  El “Sistema de Archivos” es un componente importante de un S. O. y suele contener :   
  • “Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.  
  • “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados.
  • “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario.  
  • “Integridad del archivo” para garantizar la integridad de la información del archivo. 
El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco.  
Una forma de organización de un sistema de archivos puede ser la siguiente:   
  • Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz”. 
  • El “directorio raíz” apunta a los “directorios de usuarios”.  
  • Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.  
  • Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado. 
Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado. El nombre del sistema para un archivo dado debe ser único para el sistema de archivos. 
En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo.   

5.2 Noción de archivo real y virtual. 

La mayoría de usuarios de computadoras comprenderán con mucha facilidad el término archivo relacionándolo directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto. Una característica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una línea corta de texto ocupa menos espacio en disco que esa misma línea copiada cien veces. Sin embargo al hablar de “archivos virtuales” las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria volátil, es decir aquel tipo de memoria cuya información se pierde al interrumpirse el flujo de corriente eléctrica, esto es, la memoria RAM. 

5.3 Componentes de un sistema de archivos. 

Los componentes del sistema de archivos y de programación permiten interactuar con los recursos del sistema de archivos y de directorio y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de producción de eventos y ejecutar el procesamiento asociado. 

5.4 Organización lógica y física. 
  • Un sistema de archivos garantiza la organización lógica de los datos en los discos duros y proporciona al sistema operativo las rutinas necesarias para que puedan ser accedidos, modificados y eliminados.  
  • Cualquier sistema operativo suele tener soporte para varios sistemas de archivos, aunque sólo sea en modo lectura. Los sistemas de archivos de la familia Microsoft que podemos encontrarnos son: FAT (FAT16 y FAT32) y NTFS (NTFS4, NTFS5). NTFS (New Technology File System) fue diseñado para NT e incorporaba un sistema de seguridad integrado que nos permitía asignar permisos a archivos y directorios a nivel de usuarios y grupos. 
Definiciones relacionadas con un sistema de archivo:  
  • Unidad física: El propio disco duro, sin más.  
  • Unidad lógica: Fragmento que se comporta como una partición y que está dentro de una partición extendida.  
  • Partición: Puede ser el total del tamaño del disco o una parte.  Partición primaria: Partición que el sistema marca como bootable o arrancable.  
  • Partición extendida: partición que no es de inicio y que a su vez puede contener unidades lógicas. Sólo puede haber una por disco.  
  • RAID (matriz redundante de discos independientes): Utilizar varias unidades físicas en una matriz para ofrecer mayor tamaño, tolerancia a fallos y mayor rendimiento. Hay varios niveles, RAID-0, RAID-1, RAID-5, etc. La numeración no indica mejor rendimiento o tolerancia a fallos, tan solo diferencias de métodos. 

En esta parte vamos a usar el término organización de archivos para referirnos a la estructura lógica de los registros determinada por la manera en que se accede a ellos. La organización física del archivo en almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos. Para seleccionar una organización de archivos hay diversos criterios que son importantes:  
  • Acceso Rápido para recuperar la información   
  • Fácil actualización   
  • Economía de almacenamiento   
  • Mantenimiento simple   
  • Fiabilidad para asegurar la confianza de los datos  
La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorías o puede implementarse como una combinación de estas.

Directorios  

Generalmente son utilizados por los S. O. para llevar un registro de los archivos.  En muchos sistemas son a su vez también archivos.  

Sistemas Jerárquicos de Directorios
  
El directorio contiene un conjunto de datos por cada archivo referenciado:   
  • Nombre, atributos, direcciones en disco donde se almacenan los datos. 
Otra posibilidad es que cada entrada del directorio contenga:   
  • El nombre del archivo, Un apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco. 
Al abrir un archivo el S. O.:   
  • Busca en su directorio el nombre del archivo.  
  • Extrae los atributos y direcciones en disco.  
  • Graba esta información en una tabla de memoria real.  
  • Todas las referencias subsecuentes al archivo utilizarán la información de la memoria principal. 
El número y organización de directorios varía de sistema en sistema:  Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los usuarios:

Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarquía general.

Discos  

La Unidad de Disco Duro o Disco Rígido ("Hard Disc Drive" o HDD) es llamada simplemente "disco duro" o "disco rígido", aunque en su interior contenga uno o varios discos magnéticos apilados. Un disco duro es un dispositivo de almacenamiento no volátil, que conserva la información aun con la pérdida de energía, que emplea un sistema de grabación magnética digital; es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. Dentro de la carcasa hay una serie de platos metálicos apilados girando a gran velocidad. Sobre los platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares para comunicar un disco duro con la computadora; las interfaces más comunes son Integrated Drive Electronics (IDE, también llamado ATA), SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores. SAN (Storage Area Network)  red de área de almacenamiento, es una red concebida para conectar servidores, matrices (arrays) de discos y librerías de soporte. Principalmente, está basada en tecnología fibre channel y más recientemente en iSCSI. Su función es la de conectar de manera rápida, segura y fiable los distintos elementos que la conforman.

Las siguientes son las principales ventajas con respecto del uso de la memoria principal como almacenamiento :   
  • Mucha mayor capacidad de espacio de almacenamiento.   
  • Menor precio por bit.   
  • La información no se pierde al apagar la computadora

5.4.2. Hardware de Discos   
Los discos están organizados en cilindros, pistas y sectores.  
Pistas = Tracks.
Una pista es un anillo circular sobre un lado del disco. Cada pista tiene un número. El diagrama muestra 3 pistas.    

Sectores 
Se llama sector de un disco a una parte en forma de cuña del mismo. Cada sector está numerado.     

Un  sector de pista es el área de intersección entre una pista  Y un sector. (Área amarilla).

Clusters 
Un cluster es un conjunto de sectores de pista, desde 2 a 32 o más, dependiendo del esquema de formateo que se use. El esquema más común para PC determina la cantidad de sectores de pista por cada cluster sobre la base de la capacidad del disco. Un disco rígido de 120 gigabytes tendrá el doble de clusters que un disco rígido de 50 GB.  1 cluster es el mínimo espacio usado para cualquier lectura o escritura. Por esta causa es frecuente que quede mucho espacio perdido (slack space), no usado a continuación del cluster de datos almacenado allí. 

Cilindros 
Un cilindro es un juego de pistas similares en todos los platos Sobre un disco rígido, un cilindro está integrado por todas las pistas del mismo y de todos los discos metálicos que componen al disco rígido. Si se coloca uno encima de otro obtiene un cuerpo que semeja la forma de una lata sin tapa ni fondo - un cilindro. El número típico de sectores por pista varía entre 8 y 32 (o más).  Todos los sectores tienen igual número de bytes.

Tipos de Conexión 
Si hablamos de disco rígido podemos citar a los distintos tipos de conexión que poseen los mismos con la tarjeta madre, es decir pueden ser SATA, IDE o SCSI: IDE: Integrated Device Electronics ("Dispositivo con electrónica integrada") o ATA (Advanced Technology Attachment), controla los dispositivos de almacenamiento masivo de datos, como los discos duros y ATAPI (Advanced Technology Attachment Packet Interface) Hasta hace poco, el estándar principal por su versatilidad y relación calidad/precio.  

SCSI: Small Computer System Interface. Son discos duros de gran capacidad de almacenamiento (desde 5 GB hasta 23 GB). Se presentan bajo tres especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (Fast SCSI) y SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de acceso puede llegar a 7 mseg y su velocidad de transmisión secuencial de información puede alcanzar teóricamente los 5 Mbps en los discos SCSI Estándares, los 10 Mbps en los discos SCSI Rápidos y los 20 Mbps en los discos SCSI Anchos-Rápidos (SCSI-2). Un controlador SCSI puede manejar hasta 7 discos duros SCSI (o 7 periféricos SCSI). A diferencia de los discos IDE, pueden trabajar asíncronicamente con relación al microprocesador, lo que los vuelve más rápidos.  

SATA (Serial ATA): Nuevo estándar de conexión que utiliza un bus serie para la transmisión de datos. Notablemente más rápido y eficiente que IDE. En la actualidad hay dos versiones, SATA 1 de hasta 1,5 Gigabits por segundo (150 MB/s) y SATA 2 de hasta 3,0 Gb/s (300 MB/s) de velocidad de transferencia.  

Un disco duro suele tener:  
  • Platos en donde se graban los datos,  
  • Cabezal de lectura/escritura,  
  • Motor que hace girar los platos,  
  • Electroimán que mueve el cabezal,  
  • Circuito electrónico de control, que incluye: interfaz con la computadora, memoria caché,  
  • Bolsita desecante (gel de sílice) para evitar la humedad,  
  • Caja, que ha de proteger de la suciedad.   
  • Tornillos, a menudo tipo Torx.  

Un controlador puede realizar búsquedas en una o más unidades al mismo tiempo:   
  • Son las búsquedas traslapadas.   
  • Mientras el controlador y el software esperan el fin de una búsqueda en una unidad, el controlador puede iniciar una búsqueda en otra.  
Muchos controladores pueden:   
  • Leer o escribir en una unidad.   
  • Buscar en otra.  
Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.  La capacidad de búsquedas traslapadas puede reducir considerablemente el tiempo promedio de acceso. 

Estructura lógica  

Dentro del disco se encuentran:  
  • El Master Boot Record (en el sector de arranque), que contiene la tabla de particiones.  
  • Las particiones, necesarias para poder colocar los sistemas de archivos.
5.5 Mecanismos de acceso a los archivos. 

Diseño de un sistema de archivos 
Se consideran aspectos 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 como la “fragmentación” del espacio en disco:  
  • Ocasiona problemas de desempeño al hacer que los archivos se desperdiguen a través de bloques muy dispersos.  
  • Una técnica para aliviar este problema consiste en realizar periódicamente:
Implantación de Directorios  
La principal función del sistema de directorios es asociar el nombre del archivo con la información necesaria para localizar los datos.  
La posición de almacenamiento de los atributos puede ser en forma directa dentro del dato del directorio. 

Tipos de métodos de acceso:  
Método de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de casete. También puede ser el método de acceso elegido, para simplemente procesar una secuencia de datos en orden.  
Método de Acceso Secuencial Indexado: Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión (número de cuenta, nombre, etc.).  
Método de Acceso Indexado: Pendiente la definición.  
Método de Acceso Hashed: Pendiente la definición.  
Otras Definiciones. 
Archivos Secuenciales 

5.6 Manejo de espacio en memoria secundaria. 

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.  
  • Dividir el archivo en cierto número de bloques (no necesariamente) adyacentes:
  • Generalmente los sistemas de archivos utilizan esta estrategia con bloques de tamaño fijo. 
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.  
Si se tiene una unidad de asignación grande, como un cilindro, esto significa que cada archivo, inclusive uno pequeño, ocupará todo un cilindro; con esto se desperdicia espacio de almacenamiento en disco.  Si se utiliza una unidad de asignación pequeña, como un sector, implica que cada archivo constará de muchos sectores; con esto su lectura generará muchas operaciones de e / s afectando el desempeño.  Lo anterior indica que la eficiencia en tiempo y espacio tienen un conflicto inherente.

Por qué es Necesaria la Planificación de Discos  
En los sistemas de multiprogramación muchos procesos pueden estar generando peticiones de e / s sobre discos:   
  • La generación de peticiones puede ser mucho más rápida que la atención de las mismas: Se construyen líneas de espera para cada dispositivo. Para reducir el tiempo de búsqueda de registros se ordena la lista de peticiones: esto se denomina planificación de disco. 
La planificación de disco implica:   
  • Un examen cuidadoso de las peticiones pendientes para determinar la forma más eficiente de servirlas.  
  • Un análisis de las relaciones posicionales entre las peticiones en espera.  
  • Un reordenamiento de la cola de peticiones para servirlas minimizando los movimientos mecánicos. 
Los tipos más comunes de planificación son:   
  • Optimización de la búsqueda.  
  • Optimización rotacional (latencia). 
Generalmente los tiempos de búsqueda superan a los de latencia, aunque la diferencia tiende a disminuir. Bajo condiciones de carga ligera (promedio bajo de longitud de la cola), es aceptable el desempeño del método FCFS (primero en llegar, primero en ser servido).
Bajo condiciones de carga media o pesada, es recomendable un algoritmo de planificación de las colas de requerimientos.   

Características Deseables de las Políticas de Planificación de Discos  
Criterios:   
  • Capacidad de ejecución.  
  • Media del tiempo de respuesta.  
  • Varianza de los tiempos de respuesta (predecibilidad). 
Objetivos:  
  • maximizar la capacidad de ejecución  
  • Maximizar el número de peticiones servidas por unidad de tiempo.  
  • Minimizar la media del tiempo de respuesta.  
  • Mejorar el rendimiento global, quizás a costa de las peticiones individuales. 
La planificación suele mejorar la imagen total al tiempo que reduce los niveles de servicio de ciertas peticiones:   
  • Se mide utilizando la varianza de los tiempos de respuesta.  
  • La varianza es un término estadístico que indica hasta qué punto tienden a desviarse del promedio de todos los elementos los elementos individuales.  
  • A menor varianza mayor predecibilidad.  
  • Se desea una política de planificación que minimice la varianza, es decir que maximice la predecibilidad.  
  • No debe haber peticiones que puedan experimentar niveles de servicio erráticos.
  • Justicia

Estrategias de búsqueda en disco (algoritmos de planificación). 
En la mayoría de los discos, el tiempo de búsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reducción del tiempo promedio de búsqueda puede mejorar en gran medida el rendimiento del sistema.  
En los sistemas multiprogramados son varios los procesos activos en un momento dado, y pueden producirse peticiones simultáneas de acceso a disco. Si mientras se hace un acceso llegan más peticiones, el sistema deberá mantenerlas en una lista de espera. Al terminar la petición que se atendía, el disco estará libre y el sistema determinará el orden de atención de las peticiones pendientes, minimizando el desplazamiento del brazo y el tiempo de servicio. 
   
FCFS  (First come first served) 
El criterio más simple, sirve las peticiones según su hora de llegada, de programación sencilla y sin sobrecarga, pero su eficiencia es relativa: 

SSTF (Shortest seek time first)  
  • Se atiende primero la petición más cercana a la última servida, la que quede más cerca.  
  • Reduce a la mitad el número de movimientos del brazo en comparación con FCFS.
  • No respeta el orden de llegada de las peticiones a la cola.   
  • Tiende a favorecer a las pistas del centro del disco.
Algoritmo del elevador o exploración (scan) 
Es la solución a la postergación de SSTF  
  • Se mantiene el movimiento del brazo en la misma dirección, hasta que no tiene más solicitudes pendientes en esa dirección; entonces cambia de dirección.  
5.7 Modelo jerárquico. 

Jerarquía de datos 
Son niveles de abstracción de cómo organizamos los datos: 
  • Bit: elemento de información que permite almacenar 0 o 1. 
  • Byte: 8 bits. Representan números en binario (de 0 a 28 - 1) y caracteres de texto usando códigos (ASCII), es decir, convenios para representar datos alfanuméricos con 8 bits. Campo: secuencia de datos iguales. 
  • Registro: compuesto por campos (no necesariamente todos iguales). 
  • Fichero o archivo: permite guardar conjuntos de registros. 
  • Bases de datos: conjunto de registros a los que se puede acceder usando ciertas claves. 
5.8 Mecanismos de recuperación en caso de falla. 

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. 

Manejo de un bloque defectuoso:  
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 les elimina de la “lista de bloques libres”. 
Manejo de Errores en Discos 
Algunos de los errores más comunes en discos son:   
  • Error de programación: Ej.: Solicitar un sector no existente.  
  • Error temporal en la suma de verificación: Ej.: Provocado por polvo en la cabeza.
  • Error permanente en la suma de verificación: Ej.: Un bloque del disco dañado físicamente.  
  • Error de búsqueda: Ej.: El brazo se envía al cilindro 6 pero va al 7.  
  • Error del controlador: Ej.: El controlador no acepta los comandos. 

0 comentarios: