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 bit.
- 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).
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
No hay comentarios.:
Publicar un comentario