Paginación
Contenido
Definición
La paginación es una estrategia de organización de la memoria similar a la segmentación pero con ciertas diferencias, por ejemplo la memoria se considera un espacio continuo divide en porciones de igual tamaño fijo (frente a la división en segmentos de tamaño variable de la segmentación), a dichas porciones se las conoce como marcos de pagina o simplemente como páginas. Las páginas están definidas por un número de página, que identifica de forma única a cada página (dentro del espacio de memoria de un proceso). Cada página se asigna en exclusividad a un proceso.
Funcionamiento
Desde el punto de vista de la paginación la traducción de las direcciones de memoria se basa en dos conceptos:
1. El dispositivo traductor divide las direcciones lógicas en 2 partes de la siguiente forma: los n bits mas significativos identifican la página mientras que el resto identifica el desplazamiento.
2. Cuando el traductor dinámico de páginas recibe, en una dirección lógica, un numero de página este examina una tabla (llamada tabla de páginas) en la cual se relacionan las páginas lógicas con las páginas físicas y obtiene la dirección real de la siguiente forma:
Al igual que en la segmentación al intentar acceder a una página ausente se produce un fallo (llamado en este caso fallo de página).
Otras características
- Los valores óptimos para las porciones son: en arquitectura de 32 bits es de 4KB, y en arquitectura de 64 bits es de 8KB.
- Los criterios vistos en el tema anterior no se aplican aquí, no tiene sentido hacerlo ya que todas las páginas de memoria son iguales.
Dispositivo de traducción de direcciones paginadas
Se dispone de la tabla de páginas de cada proceso en memoria para llevar a cabo la traducción. La tabla de páginas se indexa por número de página.
El dispositivo de traducción de direcciones paginadas debe ser un dispositivo muy rápido, ya que se usa con cada acceso a memoria que se realiza.El tamaño de la tabla de páginas es uno de los aspectos que mas influye en el diseño del dispositivo e incluso en la organización de la propia tabla. Otro aspecto relevante es la localización de dicha tabla, la cual puede encontrarse en el traductor o guardada en memoria:
- Tabla de páginas en el traductor:
Se usa en equipos cuyo espacio de direcciones es de pocas páginas. El dispositivo de traducción contiene un conjunto de registros organizados como una memoria en los cuales almacena la tabla de páginas. Dicha página debe sustituirse (lo cual aumenta el tiempo de conmutación) en dos situaciones distintas: al cambiar de proceso y al cambiar del proceso al ss.oo. (en este caso se reduce el tiempo de conmutación utilizando dos tablas separadas, una para los procesos y otra para el ss.oo., las cuales se utilizan dependiendo del modo de uso de la cpu, supervisor o usuario).
- Tabla de páginas en memoria:
Se usa en equipos con mucha memoria, en los cuales el numero de páginas puede llegar a ser muy alto con lo que el tiempo necesario para cargar las páginas en el traductor es demasiado alto. La tabla de páginas es guardada en la memoria principal y el dispositivo traductor tiene la dirección de comienzo y el tamaño de la tabla, debido a que la tabla esta en la memoria principal se necesita, por cada acceso a memoria, un acceso a memoria adicional para obtener el numero de página física asociado a la página lógica. Para mantener un tiempo de acceso aceptable se establece una memoria asociativa que conserva las parejas página lógica-página física utilizadas recientemente.
También hay dispositivos traductores que no utilizan tablas de páginas, buscan directamente la información en una memoria asociativa.
Tabla de páginas multinivel
El objetivo es paginar la tabla de páginas lo que permite que esta no esté cargada completa en memoria y que no ocupe direcciones consecutivas. En los ss.oo. con tablas de páginas multinivel los número de página se dividen en dos partes: los bits más significativos indican el directorio de páginas correspondiente y con los bits menos significativos el índice del directorio en el que se encuentra la página buscada:
Elementos de administración
La administración es sencilla ya que todas las porciones de memoria son de igual tamaño (se limita a comprobar si hay suficientes marcos libres para ejecutar el proceso).
Se pueden usar:
- Tabla o mapa de bits: ocupa poca memoria, de orden O(1)
- 2 listas encadenadas(colas): páginas libres, páginas ocupadas. Tiene mejor rendimiento (aunque ocupa más memoria), de orden O(1)
- Una tabla con una entrada para cada marco, esta contiene un 0 si el marco está libre o el numero de referencia al proceso si el marco esta adjudicado.