Gestión de memoria: Paginación
Posted by Adrián Manso | Posted in | Posted on 2:45
0
• El espacio de direcciónes lógico se divide en bloques idénticos de
tamaño fijo, llamados páginas
• Cada página se almacena en memoria en un marco de página
• Ventaja: Se pueden almacenar trozos de programa en memoria
en cualquier orden, eliminando la fragmentación externa
• Es necesario utilizar una Tabla de Páginas (TdP) para almacenar
la información relativa a las páginas del proceso.
Tamaño de página
• Presenta el problema de la fragmentación interna
– La unidad mínima de asignación es una página, con lo que se
desperdicia como media la mitad de una página por asignación
– El tamaño mínimo elegido vendrá impuesto por el hardware, aunque se
pueden utilizar múltiplos de este tamaño de página
• Las TdP son menores con páginas grandes
• La fragmentación interna es menor con páginas pequeñas
• El modelo permite la relocalización dinámica en t. de ejecución
Traducción de direcciones
• Las direcciónes lógicas se dividen en Número de página (p) y
desplazamiento dentro de la página (d)
• Implementación:
– Si las TdP son de tamaño reducido se implementan mediante registros
especializados en la CPU, permitiendo la traducción eficiente de las
direcciones, aunque retrasando los cambios de contexto.
– Habitualmente las TdP se implementan en memoria: es necesario la
existencia del Registro Base de la Tabla de Páginas (RBTdP)
– Existe también el Registro de Longitud de la TdP (RLTdP) que evita el
mantener una TdP completa, puesto que habitualmente los procesos no
gastan todo su espacio de direccionamiento
Tabla de páginas invertida
• En la tabla de páginas invertida existe una entrada en dicha
tabla por cada trama de página, independientemente del número
de procesos en el sistema y del número de páginas del espacio
lógico de los procesos
Buffer de traducción adelantada (TLB)
• El TLB (Translation Look-aside Buffer) está formado por un
conjunto de registros asociativos que guardan las entradas de la
TdP usadas más recientemente
• El uso del TLB reduce el “tiempo efectivo de acceso a memoria“
(tea)
– Si se define:
• tam como tiempo de acceso a memoria (cuando no hay mecanismo de
traducción de direcciones)
• tab como el tiempo de acceso al TLB
• TA como la tasa de aciertos
– El tiempo efectivo de acceso (que es el tiempo medio) se calcula como:
tea = TA(tab+tam) + (1-TA)(tab+2tam)
Protección
• Es posible establecer permisos de acceso para cada página
• Los permisos se almacenan en la TdP
• Simultáneamente con la traducción se comprueban los permisos
y se genera una excepcción en el caso de que se intente un
acceso no autorizado.
Memoria Compartida
• Memoria compartida
– Se utiliza el mismo esquema que para compartir segmentos
Gestión de procesos
• Cuando se desea ejecutar un nuevo proceso, el S.O.:
– Identifica el tamaño del proceso en páginas
– Comprueba que existen suficientes marcos de página libres en la
memoria física y crea una TdP para el proceso
– Guarda la dirección de la TdP del proceso en su BCP
– Para cada página del proceso
1) Le asigna un marco y actualiza la correspondiente entrada en la TdP
2) Copia los datos al marco
– Incluye al proceso en la cola de procesos listos
• Si no existe suficiente memoria, el proceso debe esperar en cola
• Cuando se realiza un cambio de proceso, el S.O. cambia el
RBTdP y el RLTdP del procesador, cambiando por tanto de TdP




