Paginación de múltiples niveles
En la actualidad los SO permiten la utilización de espacio de direcciones muy grande, en este contexto un proceso podría generar una tabla de páginas de gran longitud (con un tamaño de página de 4Kb (212), podría darse el caso de una tabla de páginas de más de un millón de entradas, unos 4Mb de memoria sólo para almacenar la tabla de páginas.
En este caso la solución que se implementa es esquema de paginación de dos o más niveles. Este esquema permite reducir la cantidad de memoria que se emplea para almacenar la tabla de páginas a costa de aumentar el número de accesos a memoria necesarios para realizar una operación
Este esquema de dos tablas se puede aumentar hasta tres o más, pero esto implica que la complejidad del sistema se eleve en gran manera, por lo que se recomienda solo usar hasta tres.
Segmentación/Paginación
En este método las direcciones virtuales se componen en tres partes:
- Segmento: encuentra la entrada en la tabla de segmentos en donde se encuentra la dirección donde comienza la página.
- Página: encuentra la entrada correspondiente a la página.
- Desplazamiento: con la dirección del marco de página dan la dirección real.
Fragmentación
La fragmentación es la memoria que queda desperdiciada al utilizar los métodos de gestión de memoria (segmentación y paginación), esta se genera cuando durante el reemplazo de procesos se originan espacios vacios entre dos o más procesos de manera no contigua y cada espacio vacío no es capaz de soportar ningún proceso en lista de espera. La manera de reducir la fragmentación es hacer una compactación para colocar toda la memoria libre en un gran bloque, pero esta se puede llevar a cabo solo si la relocalización es dinámica y se hace en tiempo de ejecución.
Estrategias de localidad
El término de localización se refiere a que los procesos tienden a hacer referencia a la memoria en patrones no uniformes y altamente localizados. Nunca está garantizada pero es altamente probable. Ejemplo, los procesos tienden a favorecer ciertos subconjuntos de páginas, las que tienden a ser adyacentes entre sí en el espacio de direcciones virtuales del proceso. La localidad está relacionada con la forma en que se escriben los programas y se organizan los datos. Esta localidad se hace presente tanto en el tiempo como en el espacio.
La localidad temporal significa que las localidades de almacenamiento referenciadas recientemente tienen una alta probabilidad de ser referenciadas en un futuro próximo. La localidad en el espacio significa que las referencias de almacenamiento tienden a acumularse de manera tal que una vez que se hace referencia a una localidad, es muy probable que las localidades cercanas también sean referenciadas.
Conjunto de trabajo
Un conjunto de trabajo es una colección de páginas a las cuales un proceso hace activamente referencia. Peter J. Denning desarrolló un punto de vista de la actividad de paginación de un programa llamado la “teoría de conjunto de trabajo del comportamiento de un programa”.
Denning sostenía que para que un programa se ejecutara eficientemente, su conjunto de trabajo debe ser mantenido en el almacenamiento primario, para evitar la “hiperpaginación”.
Una “política de administración de almacenamiento por conjunto de trabajo” trata de mantener el conjunto de trabajo de los programas activos en el almacenamiento primario.
No hay comentarios:
Publicar un comentario