ASIGNACIÓN Y DESASIGNACIÓN DE LA MEMORIA
Asignar o desasignar un Bloque de la memoria Principal
que tiene relacionado una Página de la memoria del Disco Duro no es tarea
fácil, debido a la propiedad de Localidad (temporal, secuencial, espacial)
implícita en todo programa. Debido a esta propiedad, la ejecución de un
programa puede estar distribuida en varias localidades de memoria
pertenecientes al mismo nivel o a niveles adyacentes. Si dichas localidades de
memoria pertenecen a un mismo nivel de memoria y se cumplen las propiedades de
Inclusión y Coherencia, no es necesario asignar o desasignar Bloques, Páginas o
Segmentos de memoria. Si, por el contrario, las localidades de memoria están
distribuidas en diferentes niveles de memoria, ocurrirá un Miss Hit, ya que
será necesario asignar y probablemente desasignar localidades de memoria
representadas por un Bloque, Página o Segmento de memoria, dependiendo del
nivel de memoria.
Antes de analizar los principios y diferentes técnicas
para la asignación o desasignación de memoria, es esencial comprender el modelo
para determinar la presencia de un Hit o un Miss Hit. Sólo así es posible
manipular los principios de los diferentes algoritmos de asignación y
desasignación de memoria. Este modelo se presenta en las figura 1.6, y en él se
observan tres niveles:
Nivel de Memoria
Adyacente Superior: Representa la Página o Bloque a ser verificado con el fin
de determinar si se cumple o no la propiedad de Inclusión entre los niveles
adyacentes de memoria M y (M-1). Al nivel de memoria adyacente superior lo
denotaremos con (M-1).
Nivel de Memoria
Adyacente Inferior: Representa el número de Bloques que componen el nivel de
memoria inferior. Al nivel de memoria adyacente inferior lo denotaremos con la
letra M.
Nivel de Hit o Miss Hit: Dicho nivel determina si se
cumple la propiedad de Inclusión entre los niveles adyacentes de memoria M y
(M-1). Representaremos a un Hit con una casilla en blanco y a un Miss Hit con
el signo +.
Algoritmo LRU (Least Recently Used): Este algoritmo se
basa en reemplazar la Página, Bloque o Segmento residente en un nivel de
memoria M-1 en un tiempo dado, que posea la mayor distancia trasera.
Algoritmo FIFO (First In First Out): Este algoritmo se
basa en reemplazar la Página, Bloque o Segmento residente en un nivel de
memoria M-1 en un tiempo dado, que posea el mayor tiempo como residente en ese
nivel de memoria.
Algoritmo LFU (Least Frecuently Used): Este algoritmo
se basa en reemplazar la Página, Bloque o Segmento residente en un nivel de
memoria M-1 en un tiempo dado, que halla sido menos referenciada en el pasado.
Algoritmo Optimo: Este algoritmo se basa en reemplazar
la Página o Bloque, residente en un nivel de memoria M-1 en un tiempo dado, que
posea la mayor distancia delantera. Los principios de este algoritmo son
esencialmente teóricos a menos que se haga uso de técnicas que permita cumplir
con los principios de este algoritmo -Ej. La técnica de Pre-Fecth buffer,
predicción de instrucciones de salto, ejecución fuera de orden, etc-, ya que en
la práctica no es posible determinar la Página o Bloque que posea mayor
distancia delantera, sin antes haber cumplido con la propiedad de Inclusión.
RELOCALIZACION
No hay comentarios.:
Publicar un comentario