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.
Se considerará el punto de
vista del usuario.
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.
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.
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.
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.
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.
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.
Getattributes (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.
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.
No hay comentarios.:
Publicar un comentario