Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Métodos de acceso
Acceso secuencial.
Es el método más simple y el más común. Los bytes se leen uno a uno, en orden. Las
escrituras siempre se hacen agregando datos al final. Es suficiente en algunos casos
(compiladores, editores). Suele ser el único método posible para archivos almacenados en
cintas magnéticas.
Directorios
La información acerca de los archivos se almacena en directorios, que, en la mayoría de
los sistemas operativos, se tratan también como archivos. Un directorio es una tabla que
contiene una entrada por archivo. Una posibilidad es tener un sólo directorio, que contenga
Asignación contigua
Este método requiere que cada archivo se almacene en un conjunto contiguo de bloques.
Ventajas.
Por una parte es simple, porque para saber qué bloques ocupa un archivo, basta con
registrar el primero. También es muy simple implementar acceso directo. Por otra parte,
tiene muy buen rendimiento cuando los archivos se leen enteros, en forma secuencial, pues
el movimiento del brazo del disco es el mínimo posible.
Desventajas.
¿qué hacer si un archivo crece? Se debería reservar espacio suficiente, pero no
necesariamente se conoce de antemano el tamaño máximo. Además, la situación es análoga
a la de asignación de particiones de memoria de tamaño variable, y por lo mismo, hay
fragmentación externa. Podríamos pensar en compactación, pero, tratándose de disco, no es
muy aconsejable hacerlo (salvo de noche, cuando el sistema no esté en uso).
Lista ligada
El segundo método para almacenar archivos consiste en mantener cada uno como una lista
ligada de bloques. Los primeros bytes de cada bloque se usan como puntero al siguiente; el
resto para los datos.
Nodos-I
El último método consiste en mantener jutos los punteros de cada archivo, en una tabla,
asociada al archivo, y que se guarda en un bloque como cualquiera (esta tabla es análoga a
la tabla de páginas). Además, en ese bloque se puede guardar información de los otros
atributos del archivo. El directorio sólo contiene un puntero al bloque que contiene la tabla.
Problema: ¿y si el archivo es grande y su tabla no cabe en un solo bloque? Soluciones: lista
ligada de bloques, índice multinivel (como en las tablas de páginas), o un esquema
combinado, que es lo que se usa en Unix:
Supongamos que en un bloque, aparte del espacio para los atributos, queda espacio para 32
punteros a otros bloques. Entonces los 29 primeros se usan como se ha dicho, es decir,
apuntan a bloques que contienen datos del archivo. Pero los tres últimos apuntan a bloques
indirectos. El antepenúltimo apunta a un bloque indirecto simple, es decir a un bloque
que contiene punteros a bloques con datos. El penúltimo apunta a un bloque indirecto
doble, es decir a un bloque que contiene punteros a bloques con punteros a bloques con
SISTEMAS OPERATIVOS I MODULO ADMINISTRACION DE DISPOSITIVOS Y
ARCHIVOS PAG No 5 / 7
datos. El último apunta a un bloque indirecto triple, es decir... adivinen. ¿Hasta qué
tamaño de archivo soporta este sistema?
Ventajas.
Prácticamente lo único que hay que registrar en el directorio es un puntero al nodo-i.
Acceso aleatorio rápido para archivos pequeños. Bajo sobrecosto fijo (no hay FAT,
entradas en directorios pequeñas).
Desventajas.
Relativamente complejo. Mayor sobrecosto variable: cada archivo, por pequeño que sea,
necesita al menos dos bloques. Acceso aleatorio más complicado para archivos grandes (en
todo caso, los bloques con índices pueden guardarse en memoria para agilizar el acceso).
Cada uno de estos método tiene ventajas y desventajas. Por eso, algunos sistemas (como
RDOS de Data General), ofrecen varios (se escoge uno al crear el archivo). Otra posibilidad
es usar asignación contigua para archivos pequeños, e indexada para grandes. Lo usual es,
en todo caso, uno sólo para todos los archivos.
En general, se usan métodos mucho más complejos que los que hemos visto. La enorme
disparidad en velocidad entre la CPU y el disco justifica usar algoritmos complejos (incluso
inteligencia artificial), que utilicen mucha CPU para ahorrar un par de movimientos del
brazo.
Windows NT administra el contenido del disco a través de una base de datos relacional, y
utiliza el modelo de transacciones para asegurarse que las modificaciones son atómicas y
no se produzcan inconsistencias.
Mapa de bits.