Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestion de Almacenamiento
Gestion de Almacenamiento
Tema 5:
Gestión de
almacenamiento secundario
1
Tema: Gestión de almacenamiento secundario
5.2 ARCHIVOS
NOMBRES DE ARCHIVO
• Formato 8.3 de MS-DOS. Nombre del archivo más una extensión para indicar tipo de
información almacenada. No distingue entre mayúsculas y minúsculas.
ESTRUCTURA DE ARCHIVOS
Los archivos se pueden estructurar de varias maneras, las más comunes son
• El SO no sabe qué contiene el archivo ni le interesa, lo único que ve son bytes. Cualquier
significado que tenga el archivo deberán imponérselo los programas en el nivel de
usuario.
• Máxima flexibilidad: los programas de usuario pueden colocar lo que deseen en sus
archivos y darles los nombres que les convenga.
• MS-DOS, UNIX, WINDOWS.
• El archivo es una secuencia de registros de longitud fija, cada uno con su propia
estructura interna.
2
Tema: Gestión de almacenamiento secundario
TIPOS DE ARCHIVOS
Muchos S. O. soportan varios tipos de archivos, por ej.: archivos normales, directorios, archivos
especiales de caracteres, archivos especiales de bloques, etc., donde
• Los Archivos Normales son aquellos que contienen información del usuario.
o Archivos ASCII: consisten en líneas de texto.
o Archivos Binarios: Lo que simplemente significa que no son archivos ASCII. Por
lo general tienen alguna estructura interna conocida por los programas que los
usan.
• Los Directorios son archivos de sistema para el mantenimiento de la estructura del
sistema de archivos.
• Los Archivos Especiales de Caracteres:
o Tienen relación con la E/S.
o Se utilizan para modelar dispositivos de E/S (terminales, impresoras, redes, etc.).
• Los Archivos Especiales de Bloques se utilizan para modelar discos.
• Acceso Secuencial: Los primeros SO sólo permitían este tipo de acceso a los archivos. El
proceso lee en orden todos los bytes o registros del archivo comenzando por el principio,
sin poder efectuar saltos ni leer en otro orden.
Lo que sí podía hacerse con los archivos secuenciales era rebobinarlos para poder leerlos
tantas veces como se deseara. Los archivos secuenciales eran convenientes cuando el
medio de almacenamiento era la cinta magnética, no el disco.
• Acceso Aleatorio: cuando comenzaron a usarse discos para almacenar archivos se hizo
posible leer los bytes o registros en cualquier orden. Si por ejemplo un cliente de una
línea aérea llama para reservar un asiento en un vuelo dado, el programa de reservas
deberá contar con la capacidad de acceder al registro de ese vuelo sin tener que leer
primero los miles de vuelos distintos.
ATRIBUTOS DE ARCHIVO
3
Tema: Gestión de almacenamiento secundario
COMPARTIR ARCHIVOS
Ninguno
Conocimiento (visibilidad)
Ejecución
Lectura
Adición de información (escritura), pero sin modificar la existente
Actualización: modificar, borrar y añadir datos del archivo
Cambios de tipo de acceso
Eliminación del archivo
4
Tema: Gestión de almacenamiento secundario
Accesos simultáneos :
Problemas del acceso concurrente a los sistemas de archivos: exclusión mutua e interbloqueo.
• El nombre.
• Sus atributos.
• Las direcciones en disco donde se almacenan los datos.
Ejemplo: UNIX
• Directorio único: el sistema tiene un sólo directorio con todos los archivos de todos los
usuarios. Problema: en un sistema con múltiples usuarios, diferentes usuarios podrían
usar por accidente los mismos nombres para sus archivos. Este esquema ya nos se usa en
los sistemas multiusuario.
5
Tema: Gestión de almacenamiento secundario
• Un directorio por usuario: el sistema habilita un sólo directorio por cada usuario.
Resolvemos el problema anterior, pero es común que los usuarios quieran agrupar sus
archivos de formas lógicas. Por ello:
• Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos
directorios como necesite, respetando una jerarquía general. Casi todos los sistemas de
archivos modernos están organizados de esta manera.
D1 D1 D1
A1 A1 A1 U1 U1 U1 U1 U1 U1
A1 A1 A1 D1 A1 A1
Cuando el sistema de archivos está organizado como un árbol de directorios se necesita una
forma de determinar los nombres de los archivos.
Los principales métodos para nombres de los archivos son
Las llamadas al sistema permitidas para el manejo de los directorios tienen variación de sistema
a sistema. Las más comunes son las siguientes:
6
Tema: Gestión de almacenamiento secundario
Los sistemas de archivos se almacenan en discos. Cada partición de un disco puede contener un
sistema de archivos independiente. Para ello, es necesario dar formato a la partición: format,
mkfs u otra herramienta.
La organización de una partición de disco varía de un S.O a otro S:O. Es común que el sistema
de archivos contenga algunos de los siguientes elementos:
• El Superbloque contiene todos los parámetros clave acerca del sistema de archivos y se
transfiere del disco a la memoria cuando se arranca la computadora.
• A continuación podría haber información sobre bloques libres en el sistema de archivos.
• Luego los nodos-i, una por archivo, proporciona todas las características del archivo.
• Después el directorio raíz, que contiene la parte más alta del árbol del sistema de
archivos.
7
Tema: Gestión de almacenamiento secundario
Caracterización:
Cabezas
Sector Pista
Cilindro
PARÁMETROS DE EFICIENCIA:
IMPLEMENTACIÓN DE ARCHIVOS.
1. Asignación contigua
8
Tema: Gestión de almacenamiento secundario
Sencilla: Para acceder a un archivo, basta con recordar la dirección del primer
bloque.
Directorio de archivos: sólo una entrada por archivo con el comienzo y la longitud.
Rendimiento: sólo se necesita un desplazamiento de la cabeza lectora (al primer
bloque)
• Desventajas
Cambiar el tamaño del archivo obliga a reubicaciones donde quepa todo.
Fragmentación grande del disco.
Compactación muy costosa.
11
• Archivo = se implementa como una lista enlazada de bloques tamaño fijo en disco
• La primera palabra de cada bloque se reserva para un puntero al siguiente
0
Datos Datos Datos
• Ventajas
No hay fragmentación externa. Hay fragmentación interna sólo en el último bloque.
Asignación: Los ficheros pueden crecer sin problemas, cualquier bloque libre puede
anexarse a la cadena.
Los directorios sólo tienen que almacenar, para cada archivo, punteros al primer
bloque.
• Desventajas
Complica el acceso aleatorio, para leer bloque n-ésimo hay que leer los n-1 bloques
anteriores (implica seguir puntero, varios accesos a disco).
El acceso a secuencias de bloques es menos eficiente (más accesos).
9
Tema: Gestión de almacenamiento secundario
11
• Archivo : lista enlazada donde los campos a siguiente se organizan en una tabla de
disco. Se denomina tabla de asignación de archivos FAT (file allocation table)
• Cada elemento de la tabla contiene el número del bloque siguiente, el inicio de los
archivos se marca con un puntero y el final con un índice especial (p. e. 0)
A 5
6
7
0
• Ventajas
Todo el bloque de disco disponible para datos.
Las búsquedas de bloque se hacen en memoria sobre la tabla (gestión de tamaño, ...)
En los directorios, para cada archivo sólo hay que guardar un entero identificando el
primer bloque de cada archivo.
Rendimiento: aceptable para acceso secuencial y bueno para acceso directo
• Desventaja:
Para que los accesos sean rápidos hay que mantener toda la tabla en memoria. Por
ejemplo, para un disco de 20 Gb y bloques de 1 Kb la tabla necesita 20.000.000 de
entradas, una para cada uno de los 20.000.000 de bloques de disco. Para cada entrada
se necesitan 4 bytes, así que necesitaríamos 80 Mb de memoria principal todo el
tiempo.
• Se usa en MS-DOS.
4. Nodo-i
A cada archivo se le asocia un nodo índice con atributos más campos de direccionamiento. Éste
se traslada del disco a la memoria principal al abrir el archivo.
10
Tema: Gestión de almacenamiento secundario
Los bloques que se asignan al archivo no tienen por qué ser contiguos.
Los nodos-i contienen 52 bytes de información de direccionamiento organizados en 13
direcciones de 4 bytes. Los 10 primeros punteros apuntan a los 10 primeros bloques de datos del
archivo.
Si el archivo posee más de 10 bloques se usan 2 o más niveles de indexación:
• La dirección 11 apunta a un bloque llamado bloque indirecto que contiene punteros a los
siguientes bloques del archivo.
• Si aún no es suficiente, el puntero 12 contiene la dirección a un bloque de indexación doble
que a su vez contiene direcciones de bloques de indexación simple.
• Si aún no tenemos suficiente espacio para el archivo, el puntero 13 apunta a un bloque de
indexación triple.
En Unix cada bloque es de 1Kb, y se direcciona con 32 bits (4 bytes), en esta situación un bloque
de datos almacena 256 direcciones de bloques, por lo que un fichero podría llegar a tener un
tamaño del orden de 16Gbytes.
Ventajas:
11
Tema: Gestión de almacenamiento secundario
• Los nodos-i son de tamaño fijo y relativamente pequeños por lo que se pueden tener
bastante tiempo en memoria principal.
• Se puede acceder a archivos pequeños con poca o ninguna indexación.
• El tamaño mayor para los archivos es bastante grande.
IMPLEMENTACIÓN DE DIRECTORIOS.
Directorios en MS-DOS:
Entradas de 32 bytes.
Nombre Extensión Atributos Reservado Hora Fecha Bloque 1 Tamaño
8 bytes 3 bytes 1 bytes 10 bytes 2 bytes 2 bytes 2 bytes 4 bytes
Directorios en UNIX
Cada entrada contiene el nombre del archivo y el nodo-i, el resto de la información se encuentra
en el nodo-i.
Nodo-i Nombre del archivo
2 bytes 14 bytes
Como hemos dicho, para almacenar un archivo de n bytes pueden adoptarse dos estrategias:
Una vez que se ha decidido almacenar archivos en bloques de tamaño fijo, surge la pregunta de
qué tamaño debe tener un bloque:
Leer cada bloque por lo regular requiere un desplazamiento de la cabeza lectora, por lo que la
lectura de un archivo integrado por muchos bloques pequeños es lenta.
En UNIX el tamaño del bloque es 1Kb.
1. Lista enlazada de bloques de disco: en cada uno de los cuales se guardan tantos números de
bloques de disco como quepan. Con bloques de 1Kb y direcciones de 32 bits, cada bloque de
la lista libre contendrá los números de 255 bloques libres (se necesita una ranura para el
apuntador al siguiente bloque). Sólo es preciso mantener un bloque de apuntadores en la
memoria principal. Cuando se crea un archivo, los bloques que necesita se toman del bloque
12
Tema: Gestión de almacenamiento secundario
de apuntadores. Cuando este bloque se agota, se lee del disco un nuevo bloque de
apuntadores. Puede dar lugar a un número elevado de operaciones de e/s de disco.
2. Mapa de bits: Un disco con n bloques requiere un mapa de bits con n bits. Los bloques
libres se marcan con 1 en el mapa y los libres con 0. El mapa de bits requiere menos espacio,
puesto que usa un bit por bloque, en comparación con los 32 bits si se usa el modelo de lista
enlazada.
La elección depende de la cantidad de memoria principal para albergar la lista o el mapa de bits.
Bibliografía consultada:
13