Gestión de Memoria

Es el proceso mediante el cual el Sistema Operativo asigna y administra la memoria RAM a los programas que la solicitan.

¿Por qué es crucial?

Sin una gestión eficiente, ocurriría el caos:

  • Ralentización: Procesos peleando por recursos.
  • Bloqueos: Programas invadiendo el espacio de otros.
  • Colapso: Agotamiento total de recursos.

Tipos de Gestión

¿Cómo organizamos los datos en los casilleros de la memoria?

Memoria Contigua

Cada proceso recibe un bloque único y continuo.

  • Ventaja: Simple y rápida.
  • Desventaja: Fragmentación grave.

Memoria No Contigua

El proceso se divide en trozos dispersos.

  • Ventaja: Aprovecha todo el espacio.
  • Desventaja: Gestión compleja.

Memoria Principal (RAM)

Es el área de trabajo de la CPU. Es volátil (se borra al apagar) y de acceso rápido.

Organización Celular

La memoria es como un enorme casillero de correo. Cada celda tiene:

  1. Una Dirección Única (para encontrarla).
  2. Un Dato almacenado (el contenido).

Esto permite que la CPU acceda a cualquier dato en el mismo tiempo, sin importar dónde esté.

La Pirámide de Memoria

No toda la memoria es igual. Existe un compromiso entre velocidad, costo y capacidad.

1. Registros CPU Más Rápido

Capacidad minúscula (Bytes). Inmediato.

2. Caché (L1, L2)

Memoria ultrarrápida dentro del procesador.

3. RAM

Velocidad media. Almacén principal.

4. Disco Duro / SSD Más Lento

Gran capacidad, persistente, pero lento.

Métodos de Asignación

El SO utiliza estrategias inteligentes para repartir la memoria.

Swapping (Intercambio)
Cuando la RAM se llena, el SO mueve los procesos "dormidos" al disco duro para liberar espacio. Cuando vuelven a despertar, los trae de regreso. ¡Es como tener memoria extra imaginaria!
Particionamiento Fijo vs Dinámico
  • Fijo: Divide la RAM en pasteles iguales. Simple pero desperdicia espacio si el proceso es pequeño.
  • Dinámico: Corta el pastel del tamaño exacto que pide el proceso.
Paginación
Divide la memoria en "marcos" y los programas en "páginas" del mismo tamaño. Permite colocar las páginas donde sea que haya hueco.

El Problema: Fragmentación

Es cuando tenemos memoria libre, pero no podemos usarla.

Fragmentación Interna

Ocurre cuando le das 100MB a un proceso que solo necesita 90MB. Esos 10MB se pierden.

Fragmentación Externa

Hay suficiente espacio total, pero está todo disperso en pedacitos pequeños.

Algoritmos de Reemplazo

Si la memoria está llena, ¿a quién sacamos para que entre alguien nuevo?

Algoritmo Lógica Eficacia
FIFO
(First In, First Out)
Saca al más antiguo. Baja A veces saca procesos importantes solo por ser viejos.
LRU
(Least Recently Used)
Saca al que lleva más tiempo sin usarse. Alta Asume que si no lo usaste hace poco, no lo usarás pronto.
Optimal Saca al que no se usará en el futuro. Teórica Imposible de implementar (no adivinamos el futuro).