La paginación es un esquema de administración de memoria que elimina la necesidad de una asignación contigua de memoria física. Este esquema permite que el espacio de direcciones físicas de un proceso no sea contiguo.
- Dirección lógica o dirección virtual (representada en bits): una dirección generada por la CPU
- Espacio de direcciones lógicas o espacio de direcciones virtuales (representado en palabras o bytes): el conjunto de todas las direcciones lógicas generadas por un programa
- Dirección física (representada en bits): una dirección realmente disponible en la unidad de memoria
- Espacio de direcciones físicas (representado en palabras o bytes): el conjunto de todas las direcciones físicas correspondientes a las direcciones lógicas
Ejemplo:
- Si Dirección lógica = 31 bits, entonces Espacio de direcciones lógicas = 2 31 palabras = 2 G palabras (1 G = 2 30 )
- Si Espacio de direcciones lógicas = 128 M palabras = 2 7 * 2 20 palabras, entonces Dirección lógica = log 2 2 27 = 27 bits
- Si Dirección física = 22 bits, entonces Espacio de direcciones físicas = 2 22 palabras = 4 M palabras (1 M = 2 20 )
- Si Espacio de direcciones físicas = 16 M palabras = 2 4 * 2 20 palabras, entonces Dirección física = log 2 2 24 = 24 bits
El mapeo de la dirección virtual a la física lo realiza la unidad de administración de memoria (MMU), que es un dispositivo de hardware y este mapeo se conoce como técnica de paginación.
- El espacio físico de direcciones se divide conceptualmente en una serie de bloques de tamaño fijo, llamados marcos .
- El espacio de direcciones lógicas también se divide en bloques de tamaño fijo, llamados páginas .
- Tamaño de página = Tamaño de marco
Consideremos un ejemplo:
- Dirección física = 12 bits, luego Espacio de direcciones físicas = 4 K palabras
- Dirección lógica = 13 bits, luego Espacio de direcciones lógicas = 8 K palabras
- Tamaño de página = tamaño de marco = 1 K palabras (suposición)
La dirección generada por la CPU se divide en
- Número de página (p): número de bits necesarios para representar las páginas en el espacio de direcciones lógicas o número de página
- Desplazamiento de página (d): número de bits necesarios para representar una palabra particular en una página o tamaño de página del espacio de direcciones lógicas o número de palabra de una página o desplazamiento de página.
La dirección física se divide en
- Número de trama (f): número de bits necesarios para representar la trama del espacio de direcciones físico o el número de trama.
- Desplazamiento de trama (d): número de bits necesarios para representar una palabra particular en una trama o tamaño de trama del espacio de direcciones físico o número de palabra de una trama o desplazamiento de trama.
La implementación de hardware de la tabla de páginas se puede realizar mediante registros dedicados. Pero el uso de registro para la tabla de páginas es satisfactorio solo si la tabla de páginas es pequeña. Si la tabla de páginas contiene una gran cantidad de entradas, entonces podemos usar TLB (búfer de búsqueda de traducción), un caché de hardware especial, pequeño y de búsqueda rápida.
- La TLB es una memoria asociativa de alta velocidad.
- Cada entrada en TLB consta de dos partes: una etiqueta y un valor.
- Cuando se usa esta memoria, un elemento se compara con todas las etiquetas simultáneamente. Si se encuentra el elemento, se devuelve el valor correspondiente.
Tiempo de acceso a la memoria principal = m
Si la tabla de páginas se mantiene en la memoria principal, el
tiempo de acceso efectivo = m (para la tabla de páginas) + m (para una página particular en la tabla de páginas)
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA