Es importante organizar bien la memoria física, y una estrategia es la paginación de memoria, pero no todos saben cómo funciona.
La memoria física cumple un papel vital en el correcto funcionamiento de nuestro sistema operativo. Por ello, hay que elegir estrategias o modelos de organización que la aprovechen al 100%. De este modo, os traemos un artículo didáctico para explicaros cómo funciona la paginación de memoria. Intentaremos explicarlo de forma sencilla, ya que son materias algo complejas.
¿Qué es la paginación de memoria?
Se trata de un modelo de organización de memoria física en el que se divide toda la memoria en porciones del mismo tamaño. Esas porciones reciben el nombre de marcos o páginas físicas. Si dividimos la memoria en páginas, podremos gestionarla mejor.
Los marcos se identifican con un número que se denomina «número de página física«. A su vez, cada página física se asigna a un proceso de forma exclusiva. Por otro lado, cada proceso tiene un espacio de páginas lógicas, y cada una se mapea o se asocia a un marco.
La tabla de páginas es el mapeo resultante entre páginas lógicas y físicas. Por tanto, cada proceso tiene su tabla de páginas. Luego, hay que entender que el proceso tiene un direccionamiento lógico que usará para satisfacer sus necesidades. Para que os hagáis una idea, un procesador de 32 bits ofrece al proceso 2^32 = 4 GB de memoria.
Vamos a intentar definir cada concepto para no perdernos:
- Marcos o páginas físicas: porciones de memoria física.
- Número de página física: el número del marco.
- Proceso: tiene asignado una página física, como contiene un espacio de páginas lógicas. De hecho, cada proceso tiene su tabla de páginas.
- Mapeado: asignación de una página lógica o física a un proceso. Ocurre igual que en los videojuegos cuando asignamos una tecla a una acción.
- Páginas lógicas: están mapeadas a un marco (porción de memoria física).
- Tabla de páginas: formada por el mapeo entre páginas físicas y lógicas.
¿Cómo funciona?
Si os preguntáis cómo funciona la paginación de memoria, debemos hacer referencia a sus dos funciones claras:
- Transforma una dirección virtual a física.
- Transfiere páginas de la memoria secundaria a la memoria principal y viceversa.
En esta técnica de gestión de memoria, los programas se dividen en unidades lógicas llamadas «páginas«. Estas páginas se usan como unidad de almacenamiento de información, como también para transferir entre la memoria principal y la secundaria.
La memoria física se divide en páginas, que son bloques del mismo tamaño. Recordad que la memoria dividida en bloques = marcos; el proceso dividido en bloques = páginas. De este modo, los marcos y las páginas tienen un tamaño fijo, ya que es la premisa de la paginación.
La paginación usa 2 posibles estructuras de datos:
- Tabla de páginas. Guarda la dirección del marco en la que está almacenada cada página. Existe una tabla por proceso y tantas entradas como páginas tiene éste. Transforma direcciones virtuales o lógicas a físicas.
- Lista de marcos libres. Guarda los marcos sin asignar, habiendo una tabla para todo el sistema (no para cada proceso). Hay entradas como marcos libres.
Cada dirección lógica contiene 2 cosas: el número de página y el desplazamiento.
¿Por qué escoger el modelo de paginación?
Tiene sus virtudes y defectos, pero vamos a centrarnos en sus virtudes porque los modelos de gestión de memoria son idóneos. Es decir, no encontramos mejores y peores, sino los que mejores se adaptan a lo que queremos.
En primer lugar, los procesos pueden albergar distintas posiciones de memoria, pudiendo ser desplazados sin problema. Esto ofrece versatilidad y proporciona cierta ubicación.
En segundo lugar, no existen conflictos entre procesos que quieren acceder a ciertas posiciones de memorias. Es decir, no se da el caso de que un proceso acceda a una posición de memoria de otro proceso.
En tercer lugar, no tiene ningún mecanismo de compatición. Por este motivo, nos solemos decantar por la segmentación paginada.
Por último, la partición. Toda la memoria se divide en bloques (marcos) y tienen el mismo tamaño. Ocurre lo mismo con los procesos en bloques (páginas). Así que, aprovechamos todo el espacio posible.
Esperamos que os haya sido de utilidad este tutorial. Si tenéis alguna duda, podéis escribir abajo para que os contestemos rápidamente.
Te recomendamos las mejores memorias RAM del mercado
¿Preferís la segmentación? ¿Qué modelo de gestión de memoria os gusta más?