lunes, 28 de noviembre de 2011

5.3.- Componentes de un Sistema de Archivos.

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.
Archivos
Se considerará el punto de vista del usuario.
Nombre de los Archivos
Las reglas exactas para los nombres de archivos varían de sistema a sistema.
Algunos sistemas de archivos distinguen entre las letras mayúsculas y minúsculas, mientras que otros no.
Muchos S. O. utilizan nombres de archivo con dos partes, separadas por un punto:
  •  La parte posterior al punto es la extensión de archivo y generalmente indica algo relativo al archivo, aunque las extensiones suelen ser meras convenciones.
Estructura de un Archivo

Los archivos se pueden estructurar de varias maneras, las más comunes son:

  • “Secuencia de bytes”:
  • El archivo es una serie no estructurada de bytes.
  •  Posee máxima flexibilidad.
  •  El S. O. no ayuda pero tampoco estorba.
  • “Secuencia de registros”:
  •  El archivo es una secuencia de registros de longitud fija, cada uno con su propia estructura interna.
  • “Árbol ”:
  •  El archivo consta de un árbol de registros, no necesariamente de la misma longitud.
  • Cada registro tiene un campo key (llave o clave) en una posición fija del registro.
  • El árbol se ordena mediante el campo de clave para permitir una rápida búsqueda de una clave particular.
Tipos de Archivos
Muchos S. O. soportan varios tipos de archivos, por ej.: archivos regulares, directorios, archivos especiales de caracteres, archivos especiales de bloques, etc., donde:
  • Los Archivos Regulares son aquellos que contienen información del usuario.
  • Los Directorios son archivos de sistema para el mantenimiento de una estructura del sistema de archivos.
  • Los Archivos Especiales de Caracteres:
  • Tienen relación con la e / s.
  • Se utilizan para modelar dispositivos seriales de e / s (terminales, impresoras, redes, etc.).
  • Los Archivos Especiales de Bloques se utilizan para modelar discos.
Acceso a un Archivo
Los tipos de acceso más conocidos son:
  • Acceso Secuencial: el proceso lee en orden todos los registros del archivo comenzando por el principio, sin poder:
  • Saltar registros.
  • Leer en otro orden.
  • Acceso Aleatorio: el proceso puede leer los registros en cualquier orden utilizando dos métodos para determinar el punto de inicio de la lectura:
  • Cada operación de lectura (read) da la posición en el archivo con la cual iniciar.
  • Una operación especial (seek) establece la posición de trabajo pudiendo luego leerse el archivo secuencialmente.
Atributos de Archivo
Cada archivo tiene:
  • Su nombre y datos.
  • Elementos adicionales llamados atributos, que varían considerablemente de sistema a sistema.
Algunos de los posibles atributos de archivo son:
  • “Protección”: quién debe tener acceso y de qué forma.
  • “Contraseña”: contraseña necesaria para acceder al archivo.
  • “Creador”: identificador de la persona que creó el archivo.
  • “Propietario”: propietario actual.
  • “Bandera exclusivo - para - lectura”: 0 lectura / escritura, 1 para lectura exclusivamente.
  • “Bandera de ocultamiento”: 0 normal, 1 para no exhibirse en listas.
  • “Bandera de sistema”: 0 archivo normal, 1 archivo de sistema.
  • “Bandera de biblioteca”: 0 ya se ha respaldado, 1 necesita respaldo.
  • “Bandera ascii / binario”: 0 archivo en ascii, 1 archivo en binario.
  • “Bandera de acceso aleatorio”: 0 solo acceso secuencial, 1 acceso aleatorio.
  • “Bandera temporal”: 0 normal, 1 eliminar al salir del proceso.
  • “Banderas de cerradura”: 0 no bloqueado, distinto de 0 bloqueado.
  • “Longitud del registro”: número de bytes en un registro.
  • “Posición de la llave”: ajuste de la llave dentro de cada registro.
  • “Longitud de la llave”: número de bytes en el campo llave.
  • “Tiempo de creación”: fecha y hora de creación del archivo.
  • “Tiempo del último acceso”: fecha y hora del último acceso al archivo.
  • “Tiempo de la última modificación”: fecha y hora de la última modificación al archivo.
  • “Tamaño actual”: número de bytes en el archivo.
  • “Tamaño máximo”: tamaño máximo al que puede crecer el archivo.
Operaciones con Archivos
Las llamadas más comunes al sistema relacionadas con los archivos son:
  •  Create (crear): el archivo se crea sin datos.
  •  Delete (eliminar): si el archivo ya no es necesario debe eliminarse para liberar espacio en disco. Ciertos S. O. eliminan automáticamente un archivo no utilizado durante “n” días.
  •  Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo. La finalidad es permitir que el sistema traslade los atributos y la lista de direcciones en disco a la memoria principal para un rápido acceso en llamadas posteriores.
  •  Close (cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya no son necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio interno.
  •  Read (leer): los datos se leen del archivo; quien hace la llamada debe especificar la cantidad de datos necesarios y proporcionar un buffer para colocarlos.
  •  Write (escribir): los datos se escriben en el archivo, en la posición actual. El tamaño del archivo puede aumentar (agregado de registros) o no (actualización de registros).
  •  Append (añadir): es una forma restringida de “write”. Solo puede añadir datos al final del archivo.
  •  Seek (buscar): especifica el punto donde posicionarse. Cambia la posición del apuntador a la posición activa en cierto lugar del archivo.
  •  Get attributes (obtener atributos): permite a los procesos obtener los atributos del archivo.
  • Set attributes (establecer atributos): algunos atributos pueden ser determinados por el usuario y modificados luego de la creación del archivo. La información relativa al modo de protección y la mayoría de las banderas son un ejemplo obvio.
  • Rename (cambiar de nombre): permite modificar el nombre de un archivo ya existente.
  • Archivos Mapeados a Memoria
  • Algunos S. O. permiten asociar los archivos con un espacio de direcciones de un proceso en ejecución .
  • Se utilizan las llamadas al sistema “map” y “unmap”:
  • “Map”: utiliza un nombre de archivo y una dirección virtual y hace que el S. O. asocie al archivo con la dirección virtual en el espacio de direcciones, por lo cual las lecturas o escrituras de las áreas de memoria asociadas al archivo se efectúan también sobre el archivo mapeado.
  • “Unmap”: elimina los archivos del espacio de direcciones y concluye la operación de asociación.
El mapeo de archivos elimina la necesidad de programar la e / s directamente, facilitando la programación.
Los principales problemas relacionados son:
·         Imposibilidad de conocer a priori la longitud del archivo de salida, el que podría superar a la memoria.
·         Dificultad para compartir los archivos mapeados evitando inconsistencias, ya que las modificaciones hechas en las páginas no se verán reflejadas en el disco hasta que dichas páginas sean eliminadas de la memoria.



 5.4. Organización Lógica y Física
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. El número de alternativas de organización de archivos que se han implementado o propuesto es inmanejable, incluso para un libro dedicado a los sistemas de archivos. 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:
  • Pilas
  • Archivos secuenciales
  • Archivos Secuenciales indexados
  • Archivos indexados
  • Archivos directos o de dispersión.

 5.5.- Mecanismo de Acceso a los Archivos

Tipos:
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 cassette. 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 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: Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable. Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Un índice exhaustivo contiene una entrada para cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de interés. Con registros de longitud variable, algunos registros no contendrán todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la información y donde los datos son rara vez procesados de forma exhaustiva.
Método de Acceso Hashed: Pendiente la definición.

Archivos Secuenciales.
La forma más común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.
Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unívocamente al registro. así, los valores de la clave para registros diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de lotes Y son óptimos para dichas aplicaciones si se procesan todos los registros. La organización secuencias de archivos es la única que es fácil de usar tanto en disco como en cinta.
Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los archivos secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves.

Archivos Secuenciales indexados
Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las características básicas de los archivos secuenciales: los registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento ( overflow ). El índice provee una capacidad de búsqueda para llegar rápidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registro precedente. En la estructura secuencial indexada más simple, se usa un solo nivel de indexación. El índice, en este caso, es un archivo secuencial simple. Cada registro del archivo índice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave. La busqueda continua en el archivo principal a partir de la posición indicada por el puntero
Archivos Indexados
Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Uno índice exhaustivo contiene una entrada par cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de interés. Con registros de longitud variable, algunos registros no contendrán todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la información y donde los datos son rara vez procesados de forma exhaustiva.
Archivos Directos o de Dispersión (Hashed)
Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.


No hay comentarios.:

Publicar un comentario