Principal limitación de la paginación de un solo nivel
Un gran desafío con la paginación de un solo nivel es que si el espacio de direcciones lógicas es grande, la tabla de páginas puede ocupar mucho espacio en la memoria principal. Por ejemplo, considere que la dirección lógica es de 32 bits y cada página es de 4 KB, el número de páginas será de 2^20 páginas. La tabla de páginas sin bits adicionales tendrá un tamaño de 20 bits * 2 20 o 2,5 MB. Dado que cada proceso tiene su propia tabla de páginas, se consumirá mucha memoria cuando se utilice la paginación de un solo nivel. Para un sistema con una dirección lógica de 64 bits, incluso una tabla de páginas de un solo proceso no cabrá en la memoria principal. Para un proceso con un gran espacio de direcciones lógicas, muchas de las entradas de la tabla de páginas no son válidas ya que gran parte del espacio de direcciones lógicas no se utiliza.
Paginación segmentada
Una solución al problema es utilizar la segmentación junto con la paginación para reducir el tamaño de la tabla de páginas. Tradicionalmente, un programa se divide en cuatro segmentos, a saber, segmento de código, segmento de datos, segmento de pila y segmento de montón.
El tamaño de la tabla de páginas se puede reducir creando una tabla de páginas para cada segmento. Para lograr esto se requiere soporte de hardware. La dirección proporcionada por la CPU ahora se dividirá en número de segmento, número de página. y compensar.
La unidad de gestión de memoria (MMU) utilizará la tabla de segmentos que contendrá la dirección de la tabla de páginas (base) y el límite. La tabla de páginas apuntará a los marcos de página de los segmentos en la memoria principal.
Ventajas de la paginación segmentada
- El tamaño de la tabla de páginas se reduce ya que las páginas están presentes solo para datos de segmentos, lo que reduce los requisitos de memoria.
- Brinda una vista a los programadores junto con las ventajas de la paginación.
- Reduce la fragmentación externa en comparación con la segmentación.
- Dado que no es necesario intercambiar todo el segmento, el intercambio a la memoria virtual se vuelve más fácil.
Desventajas de la paginación segmentada
- La fragmentación interna todavía existe en las páginas.
- Se requiere hardware adicional
- La traducción se vuelve más secuencial aumentando el tiempo de acceso a la memoria.
- La fragmentación externa ocurre debido a los diferentes tamaños de las tablas de páginas y los diferentes tamaños de las tablas de segmentos en los sistemas actuales.
Segmentación paginada
- En la paginación segmentada, no todos los procesos tienen la misma cantidad de segmentos y las tablas de segmentos pueden tener un tamaño grande, lo que provocará una fragmentación externa debido a los diferentes tamaños de las tablas de segmentos. Para resolver este problema, utilizamos la segmentación paginada que requiere que la tabla de segmentos esté paginada. La dirección lógica generada por la CPU consistirá ahora en la página n.° 1, el segmento n.°, la página n.° 2 y el desplazamiento.
- La tabla de páginas, incluso con paginación segmentada, puede tener muchas páginas no válidas. En lugar de utilizar la paginación multinivel junto con la paginación segmentada, el problema de una tabla de páginas más grande se puede resolver aplicando directamente la paginación multinivel en lugar de la paginación segmentada.
Ventajas de la segmentación paginada
- Sin fragmentación externa
- Requisitos de memoria reducidos como no. de páginas limitadas al tamaño del segmento.
- El tamaño de la tabla de páginas es más pequeño al igual que la paginación segmentada,
- De manera similar a la paginación segmentada, no es necesario intercambiar todo el segmento.
Desventajas de la segmentación paginada
- La fragmentación interna sigue siendo un problema.
- El hardware es más complejo que la paginación segmentada.
- El nivel adicional de paginación en la primera etapa se suma al retraso en el acceso a la memoria.
Publicación traducida automáticamente
Artículo escrito por sakharamgawade1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA