Tema 4. Gestión de memoria
Paginación, segmentación, memoria virtual y swap
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)
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