Gestión de almacenamiento secundario

Anuncio
Tema: Gestión de almacenamiento secundario
Tema 5:
Gestión de
almacenamiento secundario
1
Tema: Gestión de almacenamiento secundario
Profesor : M.Victoria González del Campo
5.1 INTRODUCCIÓN
Necesidades básicas que motivan la existencia de archivos:
1. Almacenar gran cantidad de información que no cabe en la memoria principal.
2. Persistencia de la información más allá de distintas ejecuciones.
3. Acceso a información de forma concurrente.
La solución es el almacenamiento de la información en discos y otros medios externos en
unidades llamadas archivos. Los archivos son una colección de datos con nombre. Los archivos
deben ser persistentes, es decir que no deben verse afectados por la creación o terminación de
un proceso. Un archivo sólo debe desaparecer si su dueño lo elimina de forma explícita.
El responsable es el SO y lo realiza mediante la gestión del Sistema de Archivos. Esto da dos
puntos de vista a estudiar:
1. El usuario ( o programa) como cliente del sistema de archivos
2. El SO como gestor del sistema de archivos.
5.2 ARCHIVOS
NOMBRES DE ARCHIVO
Las reglas de nomenclatura varían de un SO a otro:
•
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.
•
UNIX: Nombres de cualquier longitud y sensibles a las mayúsculas. El uso de
extensiones es sólo por convenio.
ESTRUCTURA DE ARCHIVOS
Los archivos se pueden estructurar de varias maneras, las más comunes son
1) Secuencia no estructurada de bytes:
•
•
•
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.
2) Secuencia de registros de longitud fija.
•
El archivo es una secuencia de registros de longitud fija, cada uno con su propia
estructura interna.
2
Tema: Gestión de almacenamiento secundario
•
•
La operación de lectura devuelve un registro y la operación de lectura sobrescribe o
anexa un registro.
Ningún sistema actual de uso general funciona así.
3) Árbol de registros de longitud variable:
•
•
•
•
•
•
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.
La operación básica aquí no es obtener el siguiente registro, que también puede hacerse,
sino, sino obtener el que tenga una clave dada.
Se utiliza en grandes computadoras para procesamiento comercial de datos.
Se pueden añadir registros nuevos al archivo y dejar que el SO, no el usuario, quien
decida dónde colocarlos.
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.
TIPOS DE ACCESO A ARCHIVOS POR SU ORGANIZACIÓN
Los tipos de acceso más conocidos son:
•
•
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
Propiedades del archivo externas a la propia información que contiene:
1.
2.
3.
4.
5.
6.
Seguridad: Protección, Contraseña, Creador, Propietario.
Acceso: Lectura, Oculto, Sistema, Bloqueado.
Tipo: ASCII o binario.
Tipo de acceso: Secuencial o aleatorio.
Información sobre los datos: Longitud de registro, posición de la clave, longitud clave.
Información del archivo: Fecha de creación, último acceso, última modificación, tamaño
actual, tamaño máximo.
OPERACIONES SOBRE ARCHIVOS
•
•
•
•
•
•
•
•
•
•
•
Create (crear): el archivo se crea sin datos y se establecen ciertos atributos.
Delete (eliminar): si el archivo ya no es necesario debe eliminarse para liberar espacio
en disco.
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 espacio.
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. Normalmente se
lee a partir de la posición que indica el apuntador de posición del archivo.
Write (escribir): los datos se escriben en el archivo. Normalmente se lee a partir de la
posición que indica el apuntador de posición del archivo, si está en medio se sobrescriben
los datos, si está al final del archivo su tamaño crece.
Append (añadir): es una forma restringida de “write”. Solo puede añadir datos al final
del archivo.
Seek (buscar): Cambia el valor del apuntador de posición 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 después 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.
COMPARTIR ARCHIVOS
Varios usuarios teniendo derechos de acceso, comparten archivos (simultáneo o no)
Para que lo hagan simultáneamente, además hay que asegurar un acceso consistente.
Derechos básicos de acceso:
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
El propietario es la persona que creó el archivo
Los derechos los asigna el propietario en función del usuario que accede.
Estos derechos difieren entre S.O. Normalmente se distinguen tres tipos de usuario: (unix,linux)
•
•
•
Los derechos se asignan de forma individual a un usuario.
Los derechos se asignan de forma colectiva a un grupo de usuarios.
Los derechos se pueden asignar de forma colectiva a otros, que incluyen todos los usuarios.
Accesos simultáneos :
Problemas del acceso concurrente a los sistemas de archivos: exclusión mutua e interbloqueo.
5.3 DIRECTORIOS: UN CASO ESPECIAL DE ARCHIVO
Son utilizados por los S. O. para llevar el control de los archivos.
SISTEMAS JERÁRQUICOS DE 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.
Ejemplo: MS-DOS y WINDOWS.
•
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.
Ejemplo: UNIX
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.
El número y organización de directorios varía de sistema en sistema:
•
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
A1
A1
D1
A1
A1
U1
U1
A1
A1
D1
U1
D1
U1
U1
A1
A1
U1
NOMBRE DE LAS RUTAS DE ACCESO
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
•
•
Ruta de Acceso Absoluta:
o Cada archivo tiene una ruta de acceso absoluta.
o Consta de la ruta de acceso desde el directorio raíz (directorio principal) hasta el
archivo.
o Los componentes de la ruta de acceso se separan mediante algún carácter llamado
“separador”. En Windows el separador es: \ y en UNIX es: /
Ruta de Acceso Relativa:
o Se utiliza junto con el concepto de directorio de trabajo o directorio activo.
o Todos los nombres que no comiencen en el directorio raíz se toman en relación
con el directorio de trabajo.
Por ejemplo, en UNIX el comando cp /usr/ast/correo /usr/ast/correo.bak y el
comando cp correo correo.bak hacen exactamente lo mismo si el directorio de
trabajo es /usr/ast
OPERACIONES CON DIRECTORIOS
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:
•
•
•
•
•
Create (crear): se crea un directorio vacío.
Delete (eliminar): se elimina un directorio, que debe estar vacío.
Opendir (abrir directorio): se pueden leer los directorios:
o Antes de poder leer un directorio, éste debe ser abierto.
Closedir (cerrar directorio): cuando se ha leído un directorio, éste debe ser cerrado para
liberar los recursos de memoria y del S.O. relativos al mismo.
Readdir (leer directorio): regresa la siguiente entrada en un directorio abierto, sin
importar el tipo de estructura de directorios que se utilice.
6
Tema: Gestión de almacenamiento secundario
•
•
•
Rename (cambiar de nombre): cambia el nombre de un directorio de manera similar al
cambio para archivos.
Link (ligar): es una técnica que permite que un archivo aparezca en más de un
directorio:
o Especifica un archivo existente y el nombre de una ruta de acceso.
o Crea un enlace del archivo ya existente con el nombre especificado en la ruta de
acceso.
Unlink (desligar): se elimina una entrada del directorio:
o Si el archivo que se desea desligar aparece solo en un directorio (el caso normal):
Se elimina del sistema de archivos.
o Si el archivo que se desea desligar, está presente en varios directorios:
Solo se elimina la ruta de acceso especificada.
Las demás rutas permanecen.
5.4 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS.
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.
MBR(Master Boot Record): Registro maestro de arranque, para arrancar la computadora.
El final del MBR contiene la tabla de particiones que contiene las direcciones inicial y final de
cada partición. Una de las particiones está marcada como activa. Cuando se enciende la
computadora, el BIOS lee el MBR del disco y lo ejecuta. Lo primero que hace el programa del
MBR es localizar la partición activa, leer su primer bloque, llamado bloque de arranque, y lo
ejecuta. El programa del bloque de arranque carga el S.O. contenido en esa partición.
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
•
El resto del disco suele contener los demás directorios y ficheros.
HARDWARE DE UN DISPOSITIVO E/S: DISCOS DUROS
Caracterización:
•
•
•
•
•
•
Cada plato /disco tiene dos caras
Cabezas de lectura/escritura: una por cada cara de cada disco.
La superficie del disco se divide en pistas, que se subdividen en sectores.
Pista: división circular de la superficie de un disco. Número fijo por disco
Sector: subdivisión de información dentro de una pista. Unidad mínima de información
que puede leerse o escribirse del disco. Todos los sectores contienen el mismo nº de
bytes. Los sectores cercanos a la orilla serán mayores físicamente que los cercanos al
anillo, el espacio adicional no se utiliza.
Cilindro: conjunto de pistas de todas las caras que pueden accederse sin mover la cabeza.
Sector
Pista
Cabezas
Cilindro
•
Ejemplos de cálculo de espacio :
Los sectores varían desde los 32 hasta los 4096 bytes; generalmente son de 512 bytes.
4 - 32 sectores por pista.
20 - 1.500 pistas en la superficie del disco.
512*4*20*2(caras)=81.920 bytes/plato
512*32*1500*2=49.152.000 bytes/plato
9 Gb = 183 platos
PARÁMETROS DE EFICIENCIA:
•
•
•
Tiempo de búsqueda: tiempo necesario para posicionar la cabeza móvil en la pista
solicitada. Este tiempo es el que domina, por lo que la reducción del tiempo promedio de
búsqueda puede mejorar en gran medida el rendimiento del sistema. Existen diversos
algoritmos para minimizar este tiempo reordenando las peticiones de acceso a disco.
Tiempo de latencia: tiempo necesario para que mediante giro podamos leer el sector
deseado.
Tiempo de transmisión: tiempo efectivo de transmisión de la información.
IMPLEMENTACIÓN DE ARCHIVOS.
1. Asignación contigua
• Archivo = conjunto de bloques contiguos de un tamaño dado.
• Ventajas:
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.
2
11
Nombre
Inicio
Tamaño
A
2
3
B
11
6
2. Asignación con listas enlazadas o encadenada:
• 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
2
11
Nombre
Inicio
Tamaño
A
2
3
B
11
6
3. Asignación con lista enlazada empleando una tabla en la memoria.
•
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
Tabla Indices : El primer bloque del fichero A es el 5, el segundo el 6 y el tercero el 7.
• 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:
Árbol jerárquico: los directorios pueden contener directorios.
Entradas de 32 bytes.
Nombre
Extensión Atributos Reservado
8 bytes
3 bytes
1 bytes
10 bytes
Hora Fecha Bloque 1 Tamaño
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
5.5 ADMINISTRACIÓN DE ESPACIO EN DISCO
Como hemos dicho, para almacenar un archivo de n bytes pueden adoptarse dos estrategias:
•
•
Asignar n bytes consecutivos de espacio en disco. Problemas: si el archivo crece es
probable que tenga que pasarse a otro lugar del disco, esta operación es muy lenta.
Dividir el archivo en varios bloques no necesariamente contiguos. Mejor esta opción que
la anterior.
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:
•
•
Si el bloque es muy grande: mucha fragmentación.
Si el bloque es muy pequeño: implica que cada archivo va a constar de muchos bloques.
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.
CONTROL DE BLOQUES LIBRES:
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:
1. Sistemas Operativos Modernos. Ed. Prentice Hall. Autor :Tanenbaum.
2. Sistemas Operativos. Una visión aplicada. Ed. Mc-Graw-Hill. Autor: J. Carretero y otros.
13
Descargar