viernes, 13 de marzo de 2015

ASIGNACIÓN Y DESASIGNACIÓN DE LA MEMORIA




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