La fila del supermercado
Tu computadora ejecuta cientos de procesos, pero generalmente tiene pocos núcleos de CPU. El scheduler del Kernel de Linux decide en milisegundos quién usa la CPU y por cuánto tiempo.
Algoritmos de Scheduling (Simplificado)
FIFO (First In, First Out)
El primero que llega, se atiende primero. Simple pero injusto: un proceso largo bloquea a todos los demás.
Round Robin
Cada proceso recibe un "turno" (quantum) de tiempo igual. Si no termina, vuelve a la fila. Es justo y el más usado.
Por Prioridad
Los procesos más importantes pasan primero. En
Linux, esto se controla con los valores de nice.
CFS (Linux Actual)
El Completely Fair Scheduler de Linux busca dar a cada proceso su parte justa del CPU, como un árbitro imparcial.
Prioridades en Linux: nice y renice
En Linux puedes decirle al sistema: "este proceso es más/menos importante". El valor
nice va de -20 (máxima prioridad) a 19
(mínima prioridad).
# Ejecutar un programa con baja prioridad
nice -n 10 firefox
# Cambiar la prioridad de un proceso en ejecución
# Primero encontrar su PID
ps aux | grep firefox
# Luego cambiar su prioridad
sudo renice -5 -p 1234
Monitoreando la CPU en tiempo real
Linux te da herramientas poderosas para ver qué pasa en la CPU:
# Monitor interactivo (viene preinstalado)
top
# Monitor mejorado con colores (instalar primero)
sudo apt install htop
htop
# Ver cuántos núcleos tiene tu CPU
nproc
# Información detallada del procesador
lscpu
Laboratorio Vivo
Experimenta con la gestión de CPU en tu terminal:
# 1. Abre htop y observa la carga de CPU
htop
# 2. En otra terminal, crea carga artificial
yes > /dev/null &
# 3. Observa en htop cómo sube el uso de CPU
# 4. Encuentra el PID del proceso "yes"
ps aux | grep yes
# 5. Cámbiale la prioridad
sudo renice 19 -p [PID]
# 6. Mátalo cuando termines
kill [PID]
Galería de Videos
CPU Scheduling Explicado
Domina htop en Linux
Referencias Bibliográficas
- Silberschatz, A. (2018). Operating System Concepts, 10th Ed. Wiley.
- Love, R. (2010). Linux Kernel Development, 3rd Edition. Addison-Wesley.
- Kernel.org. CFS Scheduler Documentation. Ver docs