Pregunta de examen

Pregunta de examen

de Guzman Pieroni Amondaray -
Número de respuestas: 1
Podrian darme la respuesta a esta pregunta ? 

En respuesta a Guzman Pieroni Amondaray

Re: Pregunta de examen

de Federico Rivero -
Hola Guzmán!

Claro, sí. La idea de usar tablas de páginas jerárquicas es reducir la cantidad de memoria utilizada. Esa es la principal ventaja y en cuanto más niveles de jerarquía, mejor. La razón de esto es que las tablas de páginas se indexan con los bits correspondientes en la dirección. Si tenés direcciones de 40bits, páginas de 1KB y una jerarquía de un único nivel, de la dirección se van a usar 30 bits para direccionar la tabla de páginas. Eso significa que tenés que tener que mantener un arreglo en memoria de 2 ^ 30 entradas para cada proceso. Ahora, si en vez de esto tenés una tabla de páginas jerárquica de 3 niveles, cada uno de 1024 entradas (10 bits en la dirección), entonces el requerimiento de memoria baja mucho. En principio el SO tiene que reservar espacio únicamente para la tabla de páginas de primer nivel del proceso y la memoria que el proceso requiera en sus secciones de código, datos y stack. Esto es algo que se ve bastante en los ejercicios, donde el proceso tiene un amplio espacio de direccionamiento virtual, pero como sus requerimientos de memoria son bajos, termina usando un puñado de tablas de página, ahorrándole un montón de memoria reservada al sistema operativo. Si el proceso requiere más memoria de forma dinámica (por ejemplo si el stack o el heap crecen), entonces el SO puede reservar espacio para tablas de páginas de segundo y tercer nivel adicionales, a medida que el proceso los vaya requiriendo.

La desventaja es bastante más simple de entender: en cuanto mayor el número de niveles, mayor cantidad de accesos a memoria se precisan para realizar la traducción de memoria virtual a física. Eso es una penalización muy costosa en el tiempo de acceso a memoria efectivo.

Saludos,
Federico