La paginación por demanda introdujo
la idea de cargar más una porción del programa en la memoria para su
procesamiento. Con la paginación por demanda, las tareas siguen divididas en
páginas de tamaño igual que inicialmente residen en almacenamiento secundarios.
Cuando se empieza a ejecutar la tarea, sus páginas pasan a la memoria solo
conforme se necesitan.
La paginación pro demanda aprovecha
el hecho que los programas se escriben de manera secuencial, de manera que
mientras una sección o modulo está en proceso, los demás están ocioso (madnick
& donovan, 1974).
Una de las innovaciones de mayor
importancia en la paginación por demanda es que hizo posible el amplio uso de
la memoria virtual, el esquema de paginación por demanda permite al usuario
ejecuta tareas con menos memoria principal de lo que se requería si el sistema
operativo estuviera utilizando el esquema de asignación de memoria paginada que
ya se describió.
La clave de la implementación
exitosa de este esquema es el uso de un dispositivo de almacenamiento de acceso
directo de alta velocidad, que pueda trabajar directamente con el CPU.
El sistema operativo se apoya en
tablas (de tareas, de mapa de páginas y de mapa de memoria) para implementar el
algoritmo. Estas tabla son básicamente las mismas para una asignación de
memoria paginada, pero con la adición de tres campos para página en la PMT uno
para establecer si la página solicitada está o no esta en la memoria, otro para
determinar si el contenido de la página se ha modificado y el ultimo para definir
si la página ha sido objeto de referencia recientemente.
Aunque la paginación por demanda es
una solución a la utilización ineficaz de la memoria, no está libre de
problemas. Donde hay demasiado intercambio de páginas entre la memoria
principal y el almacenamiento secundario, la operación se vuelve ineficaz. Es
un fenómeno que se conoce como (actividad excesiva de paginación
(hiperpaginacion). Utiliza gran cantidad de energía de la computadora sin hacer
mucho y se produce cuando una página se quita de la memoria y se vuelve a
solicitar poco después. Esta hiperpaginacion puede ocurrir entre tareas.
ASIGNACION DE MEMORIA POR
SEGMENTACION CON PAGINACION POR DEMANDA
La asignación de memoria por segmentación con paginación por demanda evoluciono a partir de las dos que acabamos de ver. Es una combinación de segmentación y las ventajas físicas de la paginación.
Este esquema de asignación no conserva cada segmento en una unidad única contigua, sino que lo subdivide en páginas de tamaño igual, más pequeñas que la mayor parte de los segmentos, y más fáciles de manipular que los segmentos completos. Por lo tanto, muchos de los problemas de la segmentación (compactación, fragmentación externa y manejo de almacenamientos secundario se eliminan, ya que las páginas son de longitud fija.
La desventaja principal de este
esquema de asignación de memoria es la carga general requerida para las tablas
adicionales y el tiempo necesario para referir las tablas de segmento y de
página. A fin de minimizar el número de referencias, muchos sistemas utilizan
memoria asociativa para acelerar el proceso.
La memoria asociativa es el nombre que se ha dado a varios registros que están asignados a cada una de las tareas activas. Su función es asociar varios números de segmento y de página pertenecientes a la tarea en proceso con sus direcciones de memoria principal. Estos registros asociativos residen en la memoria principal y su cantidad varia de un sistema a otro.
La memoria asociativa es el nombre que se ha dado a varios registros que están asignados a cada una de las tareas activas. Su función es asociar varios números de segmento y de página pertenecientes a la tarea en proceso con sus direcciones de memoria principal. Estos registros asociativos residen en la memoria principal y su cantidad varia de un sistema a otro.