Tema 4. Gestión de memoria

Paginación, segmentación, memoria virtual y swap

🏷️ RAM🏷️ Paginación🏷️ Segmentación🏷️ Swap🏷️ MMU 📚 I · Fundamentos del SO

🧠 Gestión de memoria — Conceptos básicos
La gestión de memoria asigna y libera la RAM entre los procesos. Objetivos: maximizar ocupación, proteger espacios, permitir reubicación y compartición.

Tipos de asignación contigua

  • Particiones fijas: memoria dividida en bloques de tamaño fijo. Problema: fragmentación interna.
  • Particiones dinámicas: bloques según necesidad. Problema: fragmentación externa.

MMU (Memory Management Unit)

Hardware que traduce direcciones virtuales a físicas. Proporciona protección y reubicación transparente.
💡 Direcciones lógicas (virtuales) ≠ Direcciones físicas (reales). La MMU hace la traducción.
📄 Paginación
La paginación divide la memoria en bloques de tamaño fijo:
  • Páginas: bloques de memoria lógica (mismo tamaño que los marcos).
  • Marcos (frames): bloques de memoria física.
  • Tabla de páginas: traduce número de página → número de marco.

Paginación multinivel

Para espacios de direcciones grandes se usan tablas de páginas jerárquicas (2, 3 o 4 niveles). Linux x86-64 usa 4 niveles: PGD → PUD → PMD → PTE.

TLB (Translation Lookaside Buffer)

Caché hardware de las traducciones más recientes de página→marco. Acelera enormemente el acceso a memoria.
💡 Ventaja de paginación: elimina la fragmentación externa. Desventaja: fragmentación interna en la última página.
🗄️ Segmentación
La segmentación divide el espacio de direcciones en segmentos lógicos de tamaño variable (código, datos, pila…).
  • Cada segmento tiene una base (dirección inicio) y un límite (tamaño).
  • La tabla de segmentos contiene pares base/límite.

Segmentación con paginación

Combina ambas técnicas: cada segmento se pagina internamente. Usado en x86 (modo protegido).

Comparativa

  • Paginación: sin fragmentación externa, tamaños fijos.
  • Segmentación: tamaños variables, fragmentación externa posible, más natural para programadores.
💾 Memoria virtual y Swap
La memoria virtual permite que los procesos usen más memoria de la que hay físicamente disponible.

Paginación bajo demanda (Demand Paging)

Las páginas se cargan en RAM solo cuando se accede a ellas. Un acceso a página no cargada genera un page fault (fallo de página).

Algoritmos de reemplazo de página

  • FIFO: reemplaza la página más antigua.
  • LRU (Least Recently Used): reemplaza la usada hace más tiempo. Más eficiente.
  • Óptimo: reemplaza la que no se usará más tiempo. Solo teórico.
  • Clock/Segunda oportunidad: variante eficiente de LRU.

Swap en Linux

swapon --show          # Ver swap activa
free -h                # Ver uso memoria y swap
sudo swapon /swapfile  # Activar fichero swap
cat /proc/swappiness   # Tendencia a usar swap (0-100)

🃏 Conceptos clave — Flashcards

Concepto
Paginación
Click para ver definición
División de memoria en bloques fijos (páginas/marcos); elimina fragmentación externa
Click para volver
Concepto
Page Fault
Click para ver definición
Fallo de página: acceso a una página no residente en RAM; el SO la carga desde disco
Click para volver
Concepto
TLB
Click para ver definición
Translation Lookaside Buffer: caché de traducciones de dirección virtual→física
Click para volver
Concepto
LRU
Click para ver definición
Least Recently Used: algoritmo de reemplazo que descarta la página usada hace más tiempo
Click para volver
Concepto
Swap
Click para ver definición
Espacio en disco usado como extensión de la RAM cuando ésta se agota
Click para volver
Concepto
MMU
Click para ver definición
Memory Management Unit: hardware que traduce direcciones virtuales a físicas
Click para volver

📝 Test de autoevaluación

🎯 Quiz — Tema 4