Capítulo 5: Gestión de la memoria principal
Paginación y segmentación combinadas
Dado que la segmentación ofrece ventajas desde el punto de vista del usuario, pero la paginación simplifica la perspectiva del sistema operativo, cuando el tamaño de los segmentos es grande, es frecuente que se utilice una combinación de ambas. La idea es dividir cada segmento en páginas de longitud fija para su ubicación en memoria.
Siguiendo con nuestro ejemplo anterior, el contenido de cada botella utilizaría su propio conjunto de vasos para cargarse en memoria. Aunque no debemos olvidar que todo el zumo forma parte del mismo proceso:
Como en la segmentación pura, las direcciones se expresarán mediante un número de segmento y un desplazamiento dentro de él. Sin embargo, ahora en la entrada de la tabla de segmentos la dirección base hace referencia al inicio de la tabla de páginas asociada al segmento. El desplazamiento dentro del segmento se divide por el tamaño de página para encontrar el marco de página adecuado. El resto de la división anterior representará la dirección que estamos buscando.
Este método ofrece una gran flexibilidad, pero tiene tres inconvenientes:
-
El proceso de traducción es más complejo, por lo que consumirá más recursos.
-
Dado que cada segmento tiene su propia tabla de páginas, el espacio destinado al almacenamiento de tablas de páginas será mucho mayor.
-
Como cada segmento tiene su propia tabla de páginas, podremos tener un marco de páginas incompleto al final de cada uno de los segmentos asignados a un proceso, lo que implica una mayor fragmentación interna.