5.6 Manejo de espacio en memoria secundaria
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.
El sistema de archivos se ocupa primordialmente de
administrar el espacio de almacenamiento secundario, sobre todo el espacio en
disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente
manera:
· Vector de bits
· Lista ligada (lista libre)
· Por conteo (agrupación)
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).
Fig. 5.6.2 Lista de
espacio libre enlazada en el disco.
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.
Una consecuencia del encadenamiento es que no hay
cabida para el principio de cercanía, si es necesario traer varios bloques de
un archivo al mismo tiempo, se necesita una serie de accesos a partes
diferentes del disco por lo que se debe ejecutar un algoritmo de compactación
para liberar el espacio adicional en el disco.
? Asignación Indexada. Cada archivo tiene su propio
bloc de índice el cual es un arreglo de direcciones de bloc.
En esta asignación la tabla de asignación de
archivos contiene un índice separado de un nivel para cada archivo: el índice
posee una entrada para cada sección asignada al archivo. Normalmente, los
índices no están almacenados físicamente como parte de la tabla de asignación
de archivos. Mas exactamente el índice de archivo se guardara en un bloque
aparte y la entrada del archivo en la entrada de asignación apuntara a dicho
bloque.
La asignación puede hacerse por bloques de tamaño
fijo, O en secciones de tamaño variable. La asignación por bloques elimina la
fragmentación externa, mientras que la asignación por secciones de tamaño
variable mejora la cercanía. En cualquier caso, los archivos pueden
concentrarse en zonas cercanas de cuando en cuando. La concentración reduce el
tamaño del índice en el caso de secciones de tamaño variable, pero no en el
caso de asignación por bloques.
La asignación indexada soporta tanto el acceso
secuencial como el acceso directo a los archivos y por ello se ha convertido en
la forma más popular de asignación de archivos.
En un sistema de cómputo, los elementos que se
declaran para almacenamiento son los Fyle System. Cuándo existe una solicitud
de almacenamiento o manejo de bloc libres en un file system surge una
interrogante ¿cómo atenderlas? esto se lleva a cabo mediante una planificación
de discos y para esto existen las siguientes políticas de planificación.
a) FCFS
b) SSTF
c) SCAN
d) SCAN de n-pasos
e) C-SCAN
f) Esquema Eschenbach

Comentarios
Publicar un comentario