Gestión de Memoria: Particiones Variables, Paginación y TLB
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,16 KB
Particiones Variables (MPV)
Inicialmente, las particiones son exactamente del tamaño de los trabajos que la memoria puede contener. Sin embargo, a medida que los procesos terminan, la fragmentación aumenta.
El soporte de hardware para MPV es el mismo que el requerido por MPF (Particiones Fijas). La diferencia entre ambas modalidades radica en el software.
Fusión y Compactación
Si, al finalizar un proceso, el espacio liberado limita con un espacio libre, entonces el sistema registra como disponible la región resultante de la fusión de ambos espacios. Es decir: Espacio libre + anterior espacio libre = fusión.
La generación de espacios libres no adyacentes, con respecto a la totalidad de la memoria, se traduce en una subutilización del recurso. El desplazamiento de todas las particiones ocupadas hacia uno de los extremos de la memoria, con el propósito de generar un único espacio libre, se conoce como compactación del almacenamiento.
Estrategias de Colocación
Existen tres estrategias alternativas:
- Primer Ajuste (First Fit): Un trabajo se carga en el primer espacio disponible capaz de contenerlo.
- Mejor Ajuste (Best Fit): Un trabajo se carga en el menor espacio disponible capaz de contenerlo.
- Peor Ajuste (Worst Fit): Un trabajo se carga en el mayor espacio disponible capaz de contenerlo.
A medida que los procesos terminan, la fragmentación aumenta.
Definición de Memoria Virtual
Técnica que provee la capacidad de direccionar un espacio de almacenamiento mucho mayor que el tamaño de la memoria primaria.
Establece la disociación entre las direcciones a las que hace referencia un proceso y las direcciones disponibles en la memoria real.
El soporte físico de la memoria virtual es la memoria secundaria, soportada en un medio magnético de acceso directo (como un disco duro).
Transformación de Direcciones en Memoria Virtual
Mecanismo de traducción dinámica de direcciones.
- Cuenta con un mapa de correspondencia entre direcciones virtuales y reales.
- La traducción a nivel individual es altamente costosa.
- La memoria virtual se organiza en bloques denominados páginas (si son de igual tamaño) o segmentos (si son de distinto tamaño).
Transformación de Direcciones: Detalles
Una dirección virtual v se expresa como un par ordenado (b, d), donde b es el número de bloque al que pertenece y d el desplazamiento a partir del comienzo del bloque.
Cada proceso dispone, en memoria, de una tabla de bloques cuya dirección base a se encuentra en un registro de la CPU.
La traducción de una dirección virtual v en una dirección real r se define mediante la función de transformación:
r = f(v) = f((b, d)) = b' + d
Donde b' es la base de memoria real.
Paginación
En un sistema de paginación, v = (p, d), donde p es el número de página en memoria virtual y d es el desplazamiento al interior de esa página.
Si t es el tamaño de una página, entonces un espacio de tamaño t en memoria primaria se denomina marco.
Una página puede ocupar cualquier marco disponible.
Tabla de Páginas
Una entrada en la tabla de páginas tiene la forma:
(e, d', m)
Donde:
- e es un bit de estado que indica presencia (1) o ausencia (0) de una página en memoria primaria.
- d' es la dirección de la página en memoria secundaria.
- m es el número de marco que contiene a la página p.
Cálculo de la Dirección Real
La dirección base del marco m es g = t * m. En consecuencia:
r = f(v) = f((p, d)) = g + d
Paginación y TLB (Translation Look-aside Buffer)
Si las direcciones son de m bits y el tamaño de página es 2n, la tabla de páginas puede llegar a contener 2m-n entradas.
- En el PDP-11, m=16 y n=13.
- En una CPU moderna, m=32 o 64 y n=12 o 13.
Se requerirían cientos de miles de entradas, por lo que ya no es posible tener la tabla en registros.
Solución: TLB
Una solución intermedia consiste en usar un pequeño y rápido caché especial de memoria asociativa: el TLB (Translation Look-aside Buffer).