5.1 Concepto
El “Sistema de
Archivos” es la parte del sistema de administración del almacenamiento
responsable, principalmente, de la administración de los archivos del
almacenamiento secundario.
Es la parte del S. O.
responsable de permitir “compartir controladamente” la
información de los archivos.
El sistema de
archivos es un método para el almacenamiento y organización
de archivos en una computadora y en los datos que estos
contienen, para hacer más fácil la tarea de encontrarlos y accederlos.
Los sistemas de archivos son usados en dispositivos
de almacenamiento como discos duros y CD-ROM e
involucran el mantenimiento de la localización física de los
archivos.
También un sistema de archivos es un conjunto de tipo de datos
abstractos que son implementados para el almacenamiento, la organización
jerárquica, la manipulación, el acceso, el direccionamiento y la recuperación
de datos. Los sistemas de archivos comparten mucho en común con la
tecnología de las bases de datos.
5.2 Noción de archivo real y virtual
Un archivo virtual
Es un archivo de uso temporal que es utilizado por los
procesos del sistema mientras se están ejecutando dichos
procesos.(Fig.5.2.1). Estos archivos se crean durante la ejecución de un
sistema y los utiliza para el almacenamiento de información, intercambio y
organización mientras se ejecuta el sistema (Fig. 5.2.2), su tamaño es muy
variable y terminan al detener la ejecución del sistema, muchos de ellos son
borrados, por ejemplo, los archivos *.tmp (Fig. 5.2.3) .
Se le conoce como archivo virtual, aquel que contiene los datos generados por
el usuario.
Archivo Real
Es un objeto que
contiene programas, datos o cualquier otro elemento.
Un archivo se muestra de manera real, en la información del espacio que ocupa
en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en
bytes. (Fig. 5.2.4).
5.3 Componentes de un sistema de archivos
Lo conforman todas
aquellas rutinas encargadas de administrar todos los aspectos relacionados con
el manejo de Archivos.
En UNIX se define un File System como
un sistema de software dedicado a la creación, destrucción, organización y
lectura, escritura y control de acceso de los archivos, funcionalmente los
componentes de un sistema de archivos son lenguajes de comandos, interpretador
de comandos, manejador del almacenamiento secundario, sistema de entrada y
salida y mecanismos de respaldo y recuperación.
En general, un
Sistema de Archivos está compuesto por: Métodos De Acceso,
Administración De Archivos, Administración De Almacenamiento Secundario,
Mecanismos De Integridad.
Métodos
De Acceso. Se ocupan de la manera en que se tendrá
acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo,
indexado, etc.
Administración
De Archivos. Se ocupa de ofrecer los mecanismos para
almacenar, compartir y asegurar archivos, así como para hacer referencia a
ellos.
Administración
De Almacenamiento Secundario. Se
ocupa de asignar espacio para los archivos en los dispositivos de
almacenamiento secundario. En la siguiente figura se muestra un ejemplo de la
administración de espacio en un disco duro.
Mecanismos
De Integridad. Se ocupan de garantizar que no se
corrompa la información de un archivo, de tal manera que solo la información
que deba estar en el, se encuentre ahí.
Mecanismos
de Organización Lógica. Contiene
las diferentes rutinas y comandos a través de los cuales el usuario podrá
estructurar sus archivos virtuales.
Directorio
de Identificadores. Convierte los
identificadores simbólicos de los archivos en identificadores internos, los
cuales apuntarán a su descriptor o a una estructura que permite encontrar el
archivo.
Sistemas
Teóricos de Archivos. Su objetivo es el de
activar y desactivar a través de las rutinas de abrir y cerrar archivos y
verifica el modo de acceso.
Mecanismos
de Organización Física. Traslada
las direcciones lógicas en direcciones físicas correspondientes a las
estructuras de memoria secundaria y los buffers en memoria principal necesarios
para la transferencia de datos.
Mecanismos
de E/S. Por cada petición de acceso al archivo
real, este mecanismo genera la secuencia de operaciones elementales de entrada
y salida que se necesita.
SCHEDULING E/S. En este nivel es donde se tiene el número de
peticiones pendientes así como de las que se están realizando y lleva el
control y asignación de tiempo de CPU a las diferentes peticiones de E/S.
5.4 Organización lógica y física
La administración de
archivos se refiere a las diferentes maneras en las que puede ser organizada la
información de los archivos, así como las diferentes maneras en que ésta puede
ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y
lógico), se puede hablar también de 2 aspectos de organización de
archivos: Organización de archivos lógicos y de archivos físicos.
La mayoría de las
computadoras organizan los archivos en jerarquías llamadas carpetas,
directorios o catálogos . (El concepto es el mismo
independientemente de la terminología usada.) Cada carpeta puede contener un
número arbitrario de archivos, y también puede contener otras carpetas. Las
otras carpetas pueden contener todavía más archivos y carpetas, y así sucesivamente,
construyéndose un estructura en árbol en la que una «carpeta raíz» (el nombre
varía de una computadora a otra) puede contener cualquier número de niveles de
otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente
igual que a los archivos (excepto para la carpeta raíz, que a menudo no tiene
nombre). El uso de carpetas hace más fácil organizar los archivos de una manera
lógica.
Pilas
Es la forma más fácil
de organizar un archivo. Los datos se recogen en el orden en que llegan.
Su objetivo es
simplemente acumular una masa de datos y guardarla.
Los registros pueden
tener campos diferentes o similares en un orden distinto. Cada campo debe ser
autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud
de cada campo debe indicarse implícitamente con delimitadores, explícitamente
incluidos como un subcampo más.
Archivos secuenciales
Es la forma más común
de estructura de archivos. Se emplea un formato
fijo para los registros, son de la misma longitud y constan del mismo número de
campos de tamaño fijo con un orden determinado.
Se necesita almacenar
los valores de cada campo; el nombre del campo y la longitud de cada uno son
atributos de la estructura del archivo. Cada registro tiene un campo clave que
lo identifica (generalmente es el primero de cada registro). Los registros se
almacenan en secuencia por la clave.
Archivos secuenciales indexados
Los registros se
organizan en una secuencia basada en un campo clave presentando dos
características, un índice del archivo para soportar los accesos aleatorios y
un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda
para llagar rápidamente al registro deseado y el archivo de desbordamiento es
similar al archivo de registros usado en un archivo secuencial, pero está
integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un
puntero desde su registro predecesor.
Archivos indexados
A los registros se
accede solo a través de sus índices. No hay resticción en la ubicación de los
registros, al menos un índice contiene un puntero a cada registro y pueden
emplearse registros de longitud variable.
Se suelen utilizar
dos tipos de índices, uno exhaustivo que contiene una entrada para cada
registro del archivo principal y se organiza como un archivo secuencial para
facilitar la búsqueda, el otro índice es parcial que contiene entrada a los
registros donde esté el campo de interés.
Organización física
Los datos son
arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de
almacenamiento secundario. Los registros son de tamaño fijo o de tamaño
variable y pueden organizarse de varias formas para constituir archivos físicos.
Cinta magnética
En
este dispositivo el archivo físico esta formado por un conjunto de registros
físicos, y los bloques están organizados en forma consecutiva, ya que se asigna
en igual forma.
Discos Magnéticos
El
archivo físico en un disco es una colección de registros físicos de igual
tamaño, los cuales pueden estar organizados en forma consecutiva, ligada o con
una tabla de mapeo.
En la organización contigua, el archivo utiliza registros físicos contiguos,
siguiendo la secuencia normal de direcciones.
5.5 Mecanismos de acceso a los archivos
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.
El directorio
contiene un conjunto de datos por cada archivo referenciado. Una
posibilidad es que el directorio contenga por cada archivo referenciado:
- El nombre.
- Sus atributos.
- Las 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.
Mecanismo de control de acceso
·
Control de un sistema de información especializado en detectar los
intectos de acceso, permitiendo el paso de las entidades autorizadas, y
denegando el paso a todas las demás. Involucra medios técnicos y procedimientos
operativos.
·
Mecanismo que en función de la identificación ya autenticada
permite acceder a datos o recursos.
Procedimientos para abrir y cerrar
archivos
·
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.
Descriptores
de archivos
El descriptor
de archivos o bloque de control de archivos es un bloque de control
que contiene información que el sistema necesita para administrar un archivo.
Es una estructura muy
dependiente del sistema.
Puede incluir la
siguiente información:
- Nombre simbólico del archivo.
- Localización del archivo en el
almacenamiento secundario.
- Organización del archivo (método
de organización y acceso).
- Tipo de dispositivo.
- Datos de control de acceso.
- Tipo (archivo de datos, programa
objeto, programa fuente, etc.).
- Disposición (permanente contra
temporal).
- Fecha y tiempo de creación.
- Fecha de destrucción.
- Fecha de la última modificación.
- Suma de las actividades de acceso
(número de lecturas, por ejemplo).
Los descriptores de
archivos suelen mantenerse en el almacenamiento secundario; se pasan al almacenamiento
primario al abrir el archivo.
El descriptor de
archivos es controlado por el sistema de archivos; el usuario puede
no hacer referencia directa a él.
A cada uno de los
archivos se le asigna un descriptor el cual contendrá toda la información que
necesitará el sistema de archivos para ejecutar con él los comandos que se le
soliciten. El descriptor se mantendrá en memoria principal desde que el archivo
es abierto hasta que sea cerrado, y debe tener al menos la siguiente
información, identificación del archivo, lugar de almacenamiento, información
del modo de acceso.
5.6 Manejo de espacio en memoria secundaria
A diferencia de la Memoria
Principal la Memoria Secundaria , auxiliar, masiva, externa no es tan veloz
pero tiene gran capacidad para almacenar información en dispositivos tales como
discos, cintas magnéticas, discos ópticos. Frecuentemente los datos y programas
se graban en la Memoria Secundaria , de esta forma, cuando se ejecuta varias
veces un programa o se utilicen repetidamente unos datos, no es necesario
darlos de nuevo a través del dispositivo de entrada.
En la Memoria
Secundaria un archivo consta de un conjunto de bloques (correspondiente a la
cantidad de información que se transfiere físicamente en cada operación de
acceso (lectura o escritura).
El Sistema Operativo
o Sistema de Gestión de Archivos es el encargado de la asignación de bloques a
archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el
espacio de Memoria Secundaria a los archivos y, en segundo lugar, es necesario
guardar constancia del espacio disponible para asignar.
Vector
de bits
El espacio libre en
disco es frecuentemente implementado como un mapa de bits, donde cada block es
representado por un bit y si el bloc es libre el bit es cero de lo contrario
está asignado.11000111.
Lista
ligada
Una lista ligada de
todos los blocks libres. Otra implantación se consigue guardando la dirección
del primer block libre y el número de los blocks libres contiguos que le
siguen. Cada entrada de la lista de espacio libre consiste de una dirección de
disco y un contador (por conteo).
Por
agrupación
Se almacena la
dirección en n blocks libres en el primer block libre y el último contiene la
dirección de otro block que contiene la dirección de otros blocks libres.
Para manejar los
espacios en disco existen los siguientes métodos:
- Contiguos
- Ligados
- Indexados
Contiguos
Esta asignación
requiere que cada archivo ocupe un conjunto de direcciones contiguas en el
disco, su asignación es definida por la dirección del primer bloc y la longitud
del archivo.
Cuando se crea un
archivo se le asigna un único conjunto contiguo de bloques, esta es un
estrategia de asignación previa que emplea secciones de tamaño variable. La
tabla de asignación de archivos necesita solo una entrada por cada archivo y
que muestre el bloque de comienzo y la longitud del archivo. La asignación
contigua es la mejor para un archivo secuencial.
La asignación
contigua presenta algunos problemas, como la fragmentación externa. Lo que hace
difícil encontrar bloques contiguos de espacio de tamaño suficiente., lo que
lleva a ejecutar un algoritmo de compactación para libera el espacio adicional
en el disco.
Asignación
ligada o encadenada
Cada archivo es una
lista ligada de blocks y el directorio contiene un apuntador al primer bloc y
al último.
La asignación se hace
con bloques individuales, cada bloque contendrá un puntero al siguiente bloque
de la cadena. La tabla de asignación de archivos necesita una sola entrada por
cada archivo que muestre el bloque de comienzo y la longitud del mismo,
cualquier bloque puede añadirse a la cadena. No hay que preocuparse por la
fragmentación externa porque solo se necesita un bloque cada vez.
5.7 Modelo jerárquico
Directorios
El directorio
contiene un conjunto de datos por cada archivo referenciado
Una posibilidad es
que el directorio contenga por cada archivo referenciado:
- El nombre.
- Sus atributos.
- Las 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.
Directorio único: el
sistema tiene un solo directorio con todos los archivos de todos los usuarios
(ver Figura 5.7.3).
Un directorio por
usuario: el sistema habilita un solo directorio por cada usuario (ver Figura
5.7.4).
Un árbol de directorios por usuario: el sistema
permite que cada usuario tenga tantos directorios como necesite, respetando una
jerarquía general (ver Figura 5.7.5).
5.8 Mecanismos de recuperación en caso de falla
Recuperación
Los archivos y directorios se mantienen tanto en memoria principal
como en disco, y debe tener. Se cuidado para que los fallos del sistema no
provoquen una pérdida de datos o una incoherencia en los mismos.
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 los elimina de la “lista
de bloques libres”.
- Se crea un “archivo de
bloques defectuosos”:
- Esta constituido por los bloques
defectuosos.
- No debe ser leído ni escrito.
- No se debe intentar obtener
copias de respaldo de este archivo.
Respaldos (copias
de seguridad o de back-up)
Es muy importante
respaldar los archivos con frecuencia.
Los discos magnéticos
fallan en ocasiones y es necesario tener cuidado para garantizar que los datos
perdidos debido a esos fallos no se pierdan para siempre. Con este fin, pueden
utilizarse programas del sistema para realizar una copia de seguridad de los
datos del disco en otro dispositivo de almacenamiento, como por ejemplo un
disquete, una cinta magnética, un disco óptico incluso otro disco duro. La
recuperación de la pérdida de un archivo individual o de un disco completo
puede ser entonces, simplemente, una cuestión de restaurar los datos a partir
de la copia de seguridad.
Los respaldos pueden
consistir en efectuar copias completas del contenido de los discos (flexibles o
rígidos).
Una estrategia de
respaldo consiste en dividir los discos en áreas de datos y áreas de
respaldo , utilizándolas de a pares:
- Se desperdicia la mitad del
almacenamiento de datos en disco para respaldo.
- Cada noche (o en el momento que se
establezca), la parte de datos de la unidad 0 se copia a la parte de
respaldo de la unidad 1 y viceversa.
Consistencia
del sistema de archivos
Muchos sistemas de
archivos leen bloques, los modifican y escriben en ellos después.
Si el sistema falla
antes de escribir en los bloques modificados, el sistema de archivos puede
quedar en un “estado inconsistente”.
La inconsistencia es
particularmente crítica si alguno de los bloques afectados son:
- Bloques de nodos-i.
- Bloques de directorios.
- Bloques de la lista de bloques
libres.
La mayoría de los
sistemas dispone de un programa utilitario que verifica la consistencia
del sistema de archivos:
- Se pueden ejecutar al arrancar el
sistema o a pedido.
- Pueden actuar sobre todos o
algunos de los discos.
- Pueden efectuar verificaciones a
nivel de bloques y a nivel de archivos.
- La consistencia del sistema de archivos
no asegura la consistencia interna de cada archivo, respecto de su
contenido.
- Generalmente pueden verificar
también el sistema de directorios y / o de bibliotecas.
Generalmente los
utilitarios utilizan dos tablas:
- Tabla de bloques en uso.
- Tabla de bloques libres.
- Cada bloque debe estar
referenciado en una de ellas.
Si un bloque no
aparece en ninguna de las tablas se trata de una falla llamada bloque
faltante:
- No produce daños pero desperdicia
espacio en disco.
- Se soluciona añadiendo el bloque a
la tabla de bloques libres.
También podría
detectarse la situación de falla debida a un bloque referenciado dos
veces en la tabla de bloques libres:
- Esta falla no se produce en los
sistemas de archivos basados en mapas de bits, sí en los basados en tablas
o listas.
- La solución consiste en depurar la
tabla de bloques libres.













No hay comentarios:
Publicar un comentario