5.3 Componentes de un sistema de archivo
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:
·
“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.
·
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.
·
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.
Comentarios
Publicar un comentario