Solución detallada de los ejercicios de paginación y segmentación
Datos del problema:
- Tamaño de página= 8KB (expresado en Bytes es 2^13 B)
- Tamaño de palabra del procesador= 64 bits
Con estos datos podemos hallar la distribución de los bits de la dirección lógica: Como máximo la dirección lógica tendrá 64 bits (el tamaño de palabra del procesador), observando el tamaño de página expresado en bits hallamos que el numero de bits necesarios para indicar el desplazamiento dentro de cada página es 13 (pues tiene 2^13 posiciones de memoria). El resto de bits (51) se utiliza para representar los indicadores de página (luego se podrán diferenciar 2^51 páginas distintas).
La dirección de memoria queda estructurada de la siguiente manera:
__________________________________________________ | | | | identificador | Desplazamiento | |_______________________________|__________________| 0 51 64
Apartado A
Como hemos averiguado antes, en una misma tabla de páginas pueden haber hasta 2^51 páginas. Si cada una de esas páginas pesa 128 bits (16 Bytes) el tamaño total de la tabla de páginas será:
16 * 2^51 = 2^55 Bytes
Apartado B
Conociendo el tamaño total de la tabla y el tamaño de las páginas podemos hallar el numero de páginas que caben en una tabla como máximo:
2^55 / 2^13 = 2^42 páginas caben en una tabla (cabe notar que podríamos diferenciar hasta 2^51 paginas, algo mas de las que caben realmente)
Apartado C
Podemos calcular cuantas páginas ocupará un proceso, conocido el tamaño del proceso (7 MB, que equivale a 7*2^20 B) y el tamaño de las páginas (8 KBytes, que equivale a 2^13 B). El cálculo es el siguiente:
7*2^20 / 2^13 = 7*2^7 páginas ocupadas (al igual que sus entradas en la tabla de páginas)