Multiprogramación vs. Multitarea
Multiprogramación
Varios programas cargados en memoria al mismo tiempo. Mientras uno espera (ej. leer disco), otro usa la CPU. Así no se desperdicia tiempo.
Multitarea
La CPU cambia entre programas tan rápido (milisegundos) que parece que todos se ejecutan al mismo tiempo. Es lo que usas todos los días.
Jerarquía de Memoria: La pirámide de velocidad
No toda la memoria es igual. Existe una pirámide donde lo más rápido es lo más pequeño y costoso:
| Nivel | Tipo | Velocidad | Tamaño | Ejemplo |
|---|---|---|---|---|
| 1 | Registros CPU | ⚡ Instantáneo | Bytes | Datos que la CPU procesa ahora |
| 2 | Caché (L1, L2, L3) | ⚡⚡ Muy rápida | KB-MB | Copia de datos frecuentes |
| 3 | RAM | ⚡ Rápida | GB | Programas abiertos |
| 4 | SSD / Disco | 🐢 Lenta | TB | Archivos guardados |
Explorando la jerarquía en Linux
# Ver la información de la caché del CPU
lscpu | grep -i cache
# Ver el uso de RAM en tiempo real
free -h
# Ver qué porcentaje de la caché de disco se usa
cat /proc/meminfo | grep -i "cached"
# Ver la velocidad de lectura del disco
sudo hdparm -t /dev/sda
# Monitorear todo junto con htop
htop
Demo: Multitarea en acción
Veamos cómo Linux gestiona múltiples tareas en tiempo real:
# 1. Abre htop en una terminal
htop
# 2. En otra terminal, abre varias tareas en paralelo
firefox &
gedit &
sleep 100 &
# 3. Observa en htop cómo se reparten CPU y RAM
# 4. Ver cuántos procesos tienes activos
ps aux | wc -l
# 5. Ver estadísticas de E/S (velocidad de disco)
iostat 1 3
Laboratorio Vivo
# 1. ¿Cuántos niveles de caché tiene tu CPU?
lscpu | grep -i cache
# 2. ¿Cuánta RAM tienes y cuánta usas?
free -h
# 3. Crea carga: abre 5 procesos en paralelo
for i in {1..5}; do yes > /dev/null & done
# 4. Observa el impacto en htop
htop
# 5. Limpia los procesos de carga
killall yes
Galería de Videos
Jerarquía de Memoria
Multitarea en Sistemas Operativos
Referencias Bibliográficas
- Silberschatz, A. (2018). Operating System Concepts, 10th Ed. Wiley.
- Ward, B. (2021). How Linux Works, 3rd Edition. No Starch Press.
- Love, R. (2010). Linux Kernel Development, 3rd Edition. Addison-Wesley.