GESTIÓN DE MEMORIA

Componente crítico del sistema operativo que controla cómo se asigna y libera la memoria RAM para los procesos en ejecución. Su objetivo principal es optimizar el uso de la memoria, permitiendo que múltiples procesos compartan eficientemente este recurso limitado.

Objetivos de la Gestión de Memoria

Asignación y Liberación

Gestionar qué proceso tiene acceso a qué parte de la memoria en cada momento, asignando y liberando recursos según sea necesario.

Protección de Memoria

Garantizar que un proceso no interfiera en el espacio de memoria de otro proceso, manteniendo la integridad del sistema.

Optimización del Uso

Lograr un uso eficiente de la memoria, minimizando la fragmentación y maximizando el rendimiento del sistema.

Memoria en Sistemas Informáticos

Definición: La memoria en un sistema informático se refiere al componente que almacena datos y programas en tiempo de ejecución para que la CPU pueda acceder a ellos rápidamente. Es esencial para el funcionamiento adecuado de cualquier sistema informático.

Memoria Caché

Más rápida, más cara, menor capacidad

RAM - Memoria Principal

Volátil, acceso rápido, capacidad media

Almacenamiento Secundario

Discos duros, SSD, no volátil

Almacenamiento Terciario

Cintas, backups en la nube

Memoria Principal (RAM)

Definición: Componente físico del hardware donde se almacenan los programas en ejecución y los datos con los que la CPU trabaja directamente.

  • Volátil: Pierde contenido al apagar
  • Organización: Celdas direccionables individualmente
  • Importancia: Determina rendimiento del sistema

Tipos de Gestión

Memoria Contigua: Cada proceso recibe un bloque continuo de memoria.

Ventajas: Simple y rápida

Desventajas: Fragmentación interna y externa

Memoria No Contigua: Proceso cargado en bloques no consecutivos.

Ventajas: Mejor aprovechamiento del espacio

Desventajas: Complejidad en la gestión

Métodos de Asignación de Memoria

Método Descripción Ventajas Desventajas
Particionamiento Fijo Memoria dividida en particiones de tamaño fijo asignadas a procesos específicos Simple de implementar, gestión fácil Uso ineficiente, fragmentación interna
Particionamiento Dinámico Particiones creadas y asignadas dinámicamente según solicitudes Optimiza uso de memoria, asigna tamaño exacto Fragmentación externa, gestión compleja
Paginación Memoria dividida en páginas de tamaño fijo, procesos en marcos de página Flexible, gestión eficiente, reduce fragmentación externa Fragmentación interna, overhead de tabla de páginas
Segmentación Memoria dividida en segmentos lógicos (código, datos, pila) Organización lógica, protección mejorada Fragmentación externa, gestión compleja

Fragmentación de Memoria

Fragmentación Interna

Definición: Espacio no utilizado dentro de una partición asignada a un proceso.

Causa: Cuando se asigna una partición más grande de lo necesario.

Ejemplo: Proceso solicita 50KB, se asigna partición de 64KB → 14KB desperdiciados.

Fragmentación Externa

Definición: Espacio libre suficiente en total, pero fragmentado en bloques pequeños insuficientes.

Causa: Liberación y asignación continua de memoria de diferentes tamaños.

Ejemplo: Bloques libres de 10KB, 15KB, 20KB, pero se necesita 30KB continuos.

Soluciones

  • Compactación: Reorganizar procesos para crear espacio contiguo
  • Paginación: Elimina fragmentación externa
  • Segmentación con paginación: Combina ventajas de ambos
  • Algoritmos de asignación: First-fit, Best-fit, Worst-fit

Memoria Virtual

Definición: Técnica que permite ejecutar programas más grandes que la memoria física disponible, usando combinación de RAM y espacio en disco.

Paginación

Memoria virtual y física divididas en bloques de tamaño fijo (páginas).

  • Facilita gestión de memoria
  • Permite administración eficiente
  • Reduce fragmentación externa

Segmentación

Memoria dividida en segmentos lógicos (código, datos, pila).

  • Organización lógica de programas
  • Estructuración efectiva
  • Protección mejorada

Técnicas de Asignación

  • Swapping: Bloques completos entre RAM y disco
  • Paginación bajo demanda: Solo páginas necesarias
  • Memoria compartida: Reduce duplicación

Algoritmos de Reemplazo de Páginas

Algoritmo Descripción Ventajas Desventajas
FIFO
(First In, First Out)
Reemplaza la página más antigua en memoria Simple de implementar, bajo overhead Puede eliminar páginas útiles, anomalía de Belady
LRU
(Least Recently Used)
Reemplaza página no accedida por más tiempo Mejor rendimiento, mantiene páginas frecuentes Complejo de implementar, requiere registro de uso
Óptimo
(Optimal)
Reemplaza página que no se usará por más tiempo Mejor rendimiento teórico, mínimo de fallos Imposible de implementar (requiere conocimiento futuro)

Problemas y Optimización

Problemas Comunes

  • Contención de Memoria: Varios procesos compiten por mismos recursos
  • Fragmentación: Interna y externa afectan eficiencia
  • Thrashing: Intercambio constante páginas RAM↔disco
  • Overhead: Proceso de paginación consume recursos

Espacios de Direcciones

Espacio Virtual: Conjunto de direcciones que un programa puede usar, independiente de memoria física.

Espacio Físico: Direcciones correspondientes a memoria física disponible, limitado por hardware.

Traducción: MMU (Memory Management Unit) convierte direcciones virtuales a físicas.

Técnicas de Optimización

  • Swapping: Intercambia procesos a memoria secundaria
  • Algoritmos eficientes: LRU, Clock, MRU
  • Memoria compartida: Reduce duplicación entre procesos
  • Cache de páginas: TLB (Translation Lookaside Buffer)

Glosario de Términos

RAM
Memoria de acceso aleatorio, volátil, memoria principal
Memoria Virtual
Técnica que combina RAM y disco para extender memoria
Paginación
División de memoria en bloques de tamaño fijo (páginas)
Segmentación
División en segmentos lógicos (código, datos, pila)
Fragmentación Interna
Espacio desperdiciado dentro de partición asignada
Fragmentación Externa
Espacio libre fragmentado en bloques pequeños
Swapping
Intercambio de procesos entre RAM y disco
Thrashing
Intercambio constante por falta de memoria real
TLB
Translation Lookaside Buffer, cache de traducción de direcciones
MMU
Memory Management Unit, hardware para gestión de memoria
Espacio de Direcciones
Conjunto de direcciones disponibles para proceso
Asignación Dinámica
Memoria asignada durante ejecución, liberada al finalizar