Gestión de memoria

La gestión de memoria es el submenú operativo encargado de administrar y coordinar de forma eficiente el espacio de almacenamiento temporal del equipo, asignando bloques de RAM a los diferentes procesos en ejecución y garantizando el aislamiento y la seguridad entre ellos.

Para un profesional técnico, dominar los conceptos de memoria virtual, paginación y mecanismos de protección es indispensable para optimizar el rendimiento del hardware, evitar cuellos de botella por falta de RAM y diagnosticar fallos críticos del sistema.

Conceptos Fundamentales de Gestión de Memoria

Los sistemas operativos estructuran el acceso al almacenamiento volátil mediante técnicas de abstracción y control:

    Memoria Principal (RAM): El almacenamiento volátil de alta velocidad donde el procesador carga directamente las instrucciones de los programas y los datos activos. Es un recurso limitado y compartido por todas las aplicaciones en curso.
    Memoria Virtual: Técnica de gestión que crea una ilusión en el software: los programas creen disponer de un espacio de memoria enorme, continuo y privado, cuando en realidad el sistema operativo combina la RAM física con un espacio reservado en el disco secundario.
    Paginación: Método de gestión de memoria virtual que divide la memoria física en bloques de tamaño fijo llamados marcos de página (frames) y la memoria lógica de los procesos en bloques idénticos llamados páginas. Una tabla de páginas se encarga de traducir las direcciones virtuales a direcciones físicas reales.
    Segmentación: Esquema de gestión de memoria que divide los programas en módulos o segmentos de tamaño variable según su lógica (como código, datos, pila o montículo), reflejando de forma más natural la estructura del software.
    Intercambio (Swap): Mecanismo mediante el cual el sistema operativo traslada temporalmente páginas o segmentos de memoria inactivas desde la RAM hacia una partición o archivo de intercambio en el disco (espacio swap), liberando RAM física para los procesos prioritarios.
    Protección de Memoria: Conjunto de mecanismos hardware y software diseñados para impedir que un proceso acceda o modifique el espacio de memoria asignado a otro programa o al propio núcleo del sistema operativo, garantizando la estabilidad y la seguridad.

Analogía: Imagina las mesas de trabajo en una gran oficina de diseño. La memoria RAM es la superficie de la mesa principal donde caben pocos planos abiertos a la vez; la memoria virtual es el uso de un archivador cercano para guardar carpetas completas; la paginación equivale a trocear los proyectos en hojas idénticas dentro de carpetas normalizadas para encontrarlas al instante; el Swap es cuando guardamos temporalmente un plano en el cajón inferior porque la mesa está saturada; y la protección de memoria funciona como las mamparas de seguridad entre mesas para que ningún empleado pueda entrometerse en los documentos privados de sus compañeros.

Actividad práctica

Objetivo:

Analizar el uso de la memoria virtual, los fallos de página y el espacio de intercambio en un sistema operativo.

Tareas:

  1. Comprueba en tu equipo (mediante el Monitor de Recursos en Windows o comandos como free -h en Linux) cuánta memoria RAM física y cuánto espacio de intercambio (Swap/Paginación) están configurados y activos.
  2. Investiga qué ocurre a nivel técnico cuando se produce un fallo de página (page fault) al intentar acceder a un dato que ha sido enviado al espacio swap del disco.
  3. Compara las ventajas técnicas de la paginación (bloques de tamaño fijo) frente a la segmentación (bloques de tamaño variable) en cuanto a la prevención de la fragmentación de la memoria.
  4. Reflexiona sobre el fenómeno conocido como trashing (avalancha de paginación) y explica por qué ocurre cuando el sistema operativo se queda sin memoria RAM suficiente.

Preguntas de reflexión:

  1. ¿Cómo consigue la memoria virtual hacer creer a los programas que disponen de un espacio de direcciones mucho mayor que la RAM física instalada en la placa base?
  2. ¿Qué función cumple exactamente la tabla de páginas gestionada por la MMU (Memory Management Unit) del procesador durante cada acceso a la memoria?
  3. ¿Por qué el uso excesivo del espacio de intercambio (Swap) en un disco duro mecánico tradicional degrada severamente el rendimiento general del ordenador?
  4. ¿Qué mecanismos de protección de memoria implementa el hardware del procesador para evitar que un proceso de usuario corrompa las tablas de páginas del núcleo?
  5. ¿Qué diferencia conceptual existe entre la fragmentación externa (típica de la segmentación) y la ausencia de esta en los sistemas de paginación pura?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Cómo permite la memoria virtual superar el límite de la RAM física?

Utilizando el espacio de almacenamiento secundario (disco o SSD) como una extensión de la memoria principal. El sistema operativo carga en la RAM exclusivamente las páginas de código y datos que los procesos necesitan en ese preciso instante, manteniendo el resto guardadas en el disco hasta que se solicitan.


2. ¿Qué ocurre cuando se produce un fallo de página (page fault)?

El procesador detecta que la página solicitada por una instrucción no se encuentra cargada en la RAM física (está en el disco). Se genera una interrupción por fallo de página, el sistema operativo suspende temporalmente el proceso, busca la página en el disco, la carga en un marco libre de la RAM, actualiza la tabla de páginas y reanuda la ejecución del programa.


3. ¿Por qué el uso excesivo de Swap en discos mecánicos degrada el rendimiento?

Porque la velocidad de lectura y escritura de un disco mecánico es órdenes de magnitud más lenta que la velocidad de la memoria RAM. Si el sistema debe mover constantemente páginas de datos entre la RAM y el disco (swap), la CPU pasará la mayor parte del tiempo esperando operaciones de E/S físicas en lugar de procesar instrucciones.


4. ¿Qué mecanismos protegen las tablas de páginas del núcleo?

El procesador utiliza bits de control y protección integrados en las entradas de la tabla de páginas y registros especiales de la MMU (como bits de lectura/escritura y bits de privilegio de usuario/kernel). Si un proceso intenta acceder a una dirección de memoria protegida, la MMU bloquea la operación y lanza una excepción de violación de segmento.


5. ¿Qué diferencia hay entre fragmentación externa y paginación?

La fragmentación externa ocurre en la segmentación debido a la asignación de bloques de tamaño variable, dejando huecos libres inutilizables entre procesos. En la paginación, como todos los bloques (páginas y marcos) tienen un tamaño fijo idéntico, cualquier marco libre puede asignarse a cualquier página, eliminando por completo la fragmentación externa.