domingo, 12 de diciembre de 2010

5.1 Archivos

Nombre de archivos

Los archivos son un mecanismo de abstracción, proporcionan una manera de almacenar información y después poder usarla y leerla. Cuando un proceso crea un archivo este le asigna un nombre. Cuando un proceso termina, el archivo sigue existiendo, mientras este archivo sigue vigente por así decirlo, mientras otros procesos pueden acceder a él utilizando su mismo nombre.

Algunos sistemas de archivos distinguen entre las letras mayúsculas y minúsculas, mientras que otros no.

Muchos SO 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 archivos

Los archivos pueden estructurarse de tres clases, las cuales son: secuencia de bytes, secuencia de registros y árbol. Los programas de usuario pueden poner cualquier cosa que deseen los archivos y darles cualquier nombre que crean conveniente.

  • 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

UNIX tiene archivos especiales por bloques y por caracteres.

· Los archivos regulares son los que contienen información del usuario.

· Los directorios son archivos del sistema que sirven para mantener la estructura del sistema de archivos.

· Los archivos especiales por caracteres están relacionados con E/S y sirven para modelar dispositivos de E/S.

· Los archivos especiales por bloques sirven para modelar discos.

Los archivos normales por lo regular son archivos ASCII o archivos binarios. Los archivos ASCII consisten en líneas de texto. El encabezado comienza con lo que se conoce como un número mágico, este identifica al archivo como ejecutable.

Archivo binario es un archivo de archivado, de UNKs, este archivo consiste en una colección de procedimientos de biblioteca (módulos) compilado pero no enlazados.

El sistema operativo determina cual programa debe ejecutarse basándose en la extensión del archivo.

Acceso a archivos

Los primeros sistemas operativos ofrecían un solo tipo de acceso a los archivos: acceso secuencial. Los archivos secuenciales pueden “rebobinarse “, y pueden leerse tantas veces como sea necesario. Son apropiados cuando el medio de almacenamiento es cinta magnética, no disco.

Los archivos cuyos bytes o registros se pueden leer en cualquier orden se denominan archivos de acceso aleatorio.

Se utilizan dos métodos para especificar el punto donde debe iniciarse la lectura. El primero, la operación READ indica la posición del archivo en la que se debe comenzar a leer. El segundo, la operación especial SEEK, para establecer la posición actual. Después de un SEEK, el archivo se puede leer secuencialmente a partir de la posición que este actualmente.

Atributos de archivos

Todo archivo tiene un nombre y datos. Los sistemas operativos asocian información adicional a cada archivo. Llamamos a esos datos adicionales atributos del archivo.

Los primeros cuatros atributos se refieren a la protección del archivo e indica quien puede acceder a él y quién no. En algunos sistemas el usuario debe presentar una contraseña para poder acceder a un archivo.

Las banderas son bits o campos cortos que controlan o habilitan alguna propiedad específica. Los archivos ocultos, no aparecen en los listados de los archivos. La bandera de archivado es un bit que indica si el archivo ya se respaldo o no. La bandera temporal permite marcar un archivo para que sea borrado automáticamente cuando el proceso que lo creo termina.

Los campos de longitud de registro, posición de la llave y longitud de la llave solo están presentes en los archivos cuyos registros pueden consultarse empleando una llave.

Los diversos tiempos mantienen un registro de cuando se creó el archivo, cuando se accedió a el por última vez y cundo se modifico por última vez. El tamaño actual indica que tan grande es el archivo actualmente.

Operaciones con archivos

Los archivos existen para almacenar información que se pueda recuperar. Los sistemas ofrecen distintas operaciones de almacenamiento y recuperación. Las llamadas al sistema más comunes relacionadas con 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.
  • Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo.
  • 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.
  • 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.
  • 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.
  • Rename (cambiar de nombre): permite modificar el nombre de un archivo ya existente.

No hay comentarios:

Publicar un comentario