Gestión de memoria en sistemas operativos: paginación, memoria virtual y segmentación
Resumen
El documento describe los objetivos del subsistema de gestión de memoria de un sistema operativo y el papel de la MMU en la traducción de direcciones lógicas a físicas. Explica los espacios de direcciones, la paginación por demanda, la memoria virtual, la tabla de páginas y la segmentación. Es útil para repasar los conceptos básicos de gestión de memoria en asignaturas de sistemas operativos.
Puntos clave
- La MMU convierte direcciones lógicas en físicas, comprueba que la conversión es posible y verifica los permisos de acceso.
- La paginación divide el espacio virtual en páginas y la memoria física en marcos del mismo tamaño.
- La memoria virtual permite que un proceso sea mayor que la memoria física disponible, con traslados por demanda y por expulsión.
- La tabla de páginas relaciona cada página con su marco; los bits de mayor peso indican la página y los de menor peso el desplazamiento.
- La segmentación divide el espacio de direcciones en segmentos correspondientes a rutinas, datos, pila y archivos.
Gestión de Memoria en Sistemas Operativos
Objetivos del Sistema de Gestión de Memoria
- Ofrecer a cada proceso un espacio lógico propio.
- Proporcionar protección entre procesos.
- Permitir que los procesos compartan memoria.
- Dar soporte a las distintas regiones del proceso.
- Maximizar el rendimiento del sistema.
- Proporcionar a los procesos mapas de memoria muy grandes.
Espacio de Direcciones de un Proceso
Conjunto de direcciones a las que hace referencia un proceso.
Tipos de Espacios de Direcciones
- Físicas: Referencian alguna posición de la memoria física.
- Lógicas o Virtuales: Son las que utilizan los procesos y sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas.
- Lineales: Se obtienen a partir de las direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura.
Funciones de la Unidad de Manejo de Memoria (MMU)
- Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.
- Comprobar que la conversión se puede realizar.
- Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello.
- En caso de fallos, se lanzará una excepción que deberá ser resuelta por el kernel del SO.
- La MMU se inicializa por cada proceso del sistema.
- En todos los procesos se configura la MMU para que la zona del kernel solo se pueda acceder en modo kernel (modo privilegiado).
- La configuración correspondiente al espacio de memoria del kernel es idéntica en todos los procesos.
Subsistema de Gestión de Memoria (Parte del Kernel del SO)
- Decide qué procesos residen en memoria principal (al menos una parte).
- Maneja parte del espacio de direcciones virtuales que ha quedado fuera.
- Controla la cantidad de memoria principal.
- Gestiona el intercambio de procesos entre memoria principal y memoria secundaria o dispositivo de swap.
Ventajas de la Paginación por Demanda
- Flexibilidad al mapear el espacio de direcciones virtuales de un proceso con la memoria física de la máquina.
- Permite que el tamaño de un proceso sea mayor que la cantidad de memoria física disponible.
- Más procesos residiendo en memoria simultáneamente.
Memoria Virtual
La memoria virtual es un mecanismo que permite al sistema gestionar niveles de memoria principal y memoria secundaria.
- Transferencia de bloques entre ambos niveles (normalmente basado en paginación).
- De memoria secundaria a principal: por demanda.
- De memoria principal a secundaria: por expulsión.
Paginación
La paginación es una técnica de gestión de memoria donde:
- El espacio virtual de direcciones se divide en unidades llamadas páginas, todas del mismo tamaño.
- La memoria principal se divide en marcos de páginas del mismo tamaño que las páginas virtuales (en cada marco de página se carga una página de un proceso).
- No todo el espacio virtual de direcciones está cargado en memoria principal. Una copia completa se encuentra en disco y las páginas se traen a memoria principal cuando se necesitan.
Tabla de Páginas (TP)
La Tabla de Páginas (TP) relaciona cada página con el marco que la contiene.
- La MMU usa la TP para traducir direcciones lógicas a físicas.
- Típicamente usa dos tablas de páginas (TPs): TP de usuario y TP de sistema (solo se permite usar estas direcciones en modo sistema).
Transformación de Dirección Virtual a Física
Los bits de mayor peso de la dirección virtual se interpretan como el número de la página en la TP y los de menor peso como el número de palabra dentro de la página (desplazamiento).
Segmentación
La segmentación es otra técnica de gestión de memoria donde:
- El espacio de direcciones se divide en segmentos, cada uno de los cuales corresponde a una rutina (procedimiento o función). Cada programa contiene una cierta cantidad de segmentos.
- Los primeros segmentos se reservan para procedimientos, datos y pila pertenecientes al programa en ejecución.
- Los segmentos restantes contienen un archivo por segmento.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué función cumple la MMU?
La MMU convierte las direcciones lógicas emitidas por los procesos en direcciones físicas, comprueba que la conversión sea posible y verifica que el proceso tenga permisos para acceder a esa dirección. Ante un fallo lanza una excepción que debe resolver el kernel.
¿Qué es la paginación por demanda?
Es un esquema en el que las páginas de un proceso se traen de memoria secundaria a principal solo cuando se necesitan. Permite que un proceso ocupe más espacio virtual que la memoria física disponible.
¿Cómo se obtiene la dirección física a partir de la virtual?
Los bits de mayor peso de la dirección virtual indican el número de página, que la MMU busca en la tabla de páginas, y los de menor peso indican el desplazamiento dentro de la página.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.