Contexto
Introducción
El sistema operativo es responsable de decidir qué proceso utiliza el CPU en cada momento. Este mecanismo se conoce como planificación del procesador (CPU Scheduling).
En Linux, el planificador utiliza diferentes criterios como prioridad, uso de CPU y comportamiento del proceso para distribuir el tiempo de ejecución.
El CPU nunca está realmente "libre": siempre está asignado a algún proceso, incluso si es un proceso del sistema.
En esta práctica se observará cómo múltiples procesos compiten por el CPU y cómo el sistema asigna recursos dinámicamente.
Objetivo
Objetivo
- Observar el uso del CPU en tiempo real
- Analizar cómo múltiples procesos compiten por el procesador
- Modificar la prioridad de procesos
- Interpretar el comportamiento del planificador
Entorno
Condiciones del entorno
La práctica se ejecuta en un entorno Linux compartido mediante SSH.
ssh usuario@IP_SERVIDOR
Verificar disponibilidad:
top
ps
nice
Opcional (si está disponible):
htop
El comportamiento dependerá de la carga del sistema y la ejecución de otros usuarios.
Comandos
Comandos y explicación
top → Monitor de uso de CPU en tiempo real
top
ps → Lista procesos con consumo de CPU
ps aux --sort=-%cpu
nice → Ejecuta proceso con prioridad modificada
nice -n 10 comando
renice → Cambia prioridad de proceso en ejecución
renice 10 -p PID
Ejecución
Actividad paso a paso
- Monitorear el sistema:
top
- Identificar procesos con mayor uso de CPU
- Ejecutar procesos que consuman CPU:
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
- Observar comportamiento en top
- Identificar PID:
ps aux | grep yes
- Cambiar prioridad:
renice 10 -p PID
- Comparar consumo de CPU entre procesos
- Finalizar procesos:
kill PID
Análisis
Análisis del sistema
- ¿Qué proceso consume más CPU?
- ¿Cómo cambia el comportamiento al modificar prioridad?
- ¿Todos los procesos reciben el mismo tiempo?
- ¿Cómo afecta la carga al sistema?
El planificador distribuye el CPU buscando equilibrio entre rendimiento y equidad.
Reflexión
Preguntas de reflexión
- ¿Por qué no todos los procesos reciben el mismo tiempo de CPU?
- ¿Qué implicaciones tiene la prioridad en sistemas productivos?
- ¿Qué pasaría si un proceso monopoliza el CPU?
- ¿Cómo afecta esto a sistemas multiusuario?
Extensión
Actividad complementaria
- Investigar algoritmos de planificación (Round Robin, FIFO, CFS)
- Analizar cómo Linux implementa CFS (Completely Fair Scheduler)
- Comparar prioridades en Linux
Entrega: análisis técnico con ejemplos
Entrega
Evidencia
- Capturas de:
- top
- ps aux
- procesos yes en ejecución
- Cambio de prioridad documentado
- Respuestas de reflexión