Gestión de memoria
La memoria es uno de los recursos más importantes de un ordenador, porque es donde se cargan los programas y los datos que necesitan para ejecutarse. El sistema operativo se encarga de administrarla de manera eficiente, asegurando que cada proceso tenga suficiente espacio y que no interfieran entre sí.
1. Funciones principales de la gestión de memoria #
-
Asignación de memoria
- El SO reserva espacio en la RAM para cada proceso cuando se ejecuta.
- Debe hacerlo de forma dinámica, según lo que pida cada programa.
-
Protección de memoria
- Un proceso no puede acceder a la memoria de otro.
- Esto evita errores y problemas de seguridad.
-
Liberación de memoria
- Cuando un proceso termina, su memoria debe quedar libre para otros procesos.
-
Memoria virtual
- Si la RAM no es suficiente, el SO usa parte del disco duro como si fuera memoria (archivo de intercambio o swap).
- Así, se pueden ejecutar programas más grandes que la memoria física disponible.
-
Optimización
- El SO decide qué partes de la memoria mantener en RAM y cuáles pasar al disco, buscando un equilibrio entre rendimiento y disponibilidad.
2. Técnicas de gestión de memoria #
-
Particiones fijas
- La memoria se divide en bloques predeterminados.
- Sencillo, pero poco flexible: puede desperdiciar memoria.
-
Particiones dinámicas
- La memoria se reparte según la necesidad de cada proceso.
- Más eficiente, pero puede fragmentarse (quedan huecos libres pequeños).
-
Paginación
- La memoria se divide en páginas (RAM) y marcos (disco).
- Un proceso puede estar distribuido en varias páginas no contiguas.
- Muy usado en sistemas modernos.
-
Segmentación
- La memoria se organiza en segmentos lógicos (código, datos, pila).
- Más cercana a la estructura real de los programas.
-
Swapping
- Procesos enteros se mueven temporalmente al disco para liberar RAM.
3. Ejemplo práctico #
Supongamos que tienes 4 GB de RAM y abres:
- Un navegador (2 GB).
- Un editor de texto (500 MB).
- Un juego (4 GB).
👉 El SO usa la RAM para el navegador y el editor, pero cuando el juego pide memoria adicional, activa la memoria virtual: parte de los datos del navegador se pasan al disco duro para liberar espacio.
Resumen del tema
Conceptos clave #
- Objetivos de la Gestión de Memoria: asignación dinámica, protección de espacio de direcciones y liberación tras la terminación de procesos.
- Técnicas Clásicas de Asignación:
- Particiones fijas: propensas a fragmentación interna.
- Particiones dinámicas: propensas a fragmentación externa.
- Swapping: intercambio temporal de procesos completos entre RAM y disco.
- Técnicas Modernas:
- Paginación: división de memoria física en marcos (frames) y lógica en páginas de tamaño fijo sin fragmentación externa.
- Segmentación: división lógica según módulos de programa (código, datos, pila/heap).
- Memoria Virtual: combinación de RAM y espacio de almacenamiento secundario (swap/paging file) mediante traducción por la unidad MMU.
Qué debes recordar #
La gestión de memoria garantiza el aislamiento entre procesos y amplía la capacidad física mediante memoria virtual (paginación/swap).