Saltar al contenido principal

Lab 4.1 - Visualización de Procesos

Objetivos​

Al final de este laboratorio, usted será capaz de:

  • Visualizar los procesos con ps, top, htop
  • Comprender la información mostrada
  • Filtrar y ordenar los procesos
  • Monitorizar los procesos en tiempo real

Prerrequisitos​

  • Ubuntu 24.04 instalado
  • Terminal abierto
  • htop instalado (opcional pero recomendado)

Ejercicio 1: ps (Estado de Procesos)​

Paso 1: Comandos Básicos​

# Ver todos los procesos
ps aux

# Ver los procesos del usuario actual
ps

# Con más detalles
ps auxf # Árbol de procesos

# Ver un proceso específico
ps aux | grep firefox

Paso 2: Opciones Útiles​

# Formato personalizado
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10

# Procesos por usuario
ps -u $USER

# Procesos por PID
ps -p 1

# Procesos con árbol
pstree
pstree -p # Con PID

Paso 3: Análisis​

# Top 10 por CPU
ps aux --sort=-%cpu | head -11

# Top 10 por memoria
ps aux --sort=-%mem | head -11

# Contar los procesos
ps aux | wc -l

# Por usuario
ps aux | awk '{print $1}' | sort | uniq -c | sort -rn

Ejercicio 2: top​

Paso 1: Uso Básico​

# Iniciar top
top

# Comandos en top:
# - 'q': Salir
# - 'k': Matar un proceso (ingresar PID)
# - 'r': Cambiar nice de un proceso
# - 'M': Ordenar por memoria
# - 'P': Ordenar por CPU
# - 'f': Cambiar las columnas mostradas
# - '1': Ver todos los CPUs

Paso 2: Modo Batch​

# Ejecutar top en modo batch (una vez)
top -bn1 | head -20

# Guardar en un archivo
top -bn1 > top-output.txt

# Ver los procesos principales
top -bn1 | grep -A 20 "PID USER"

Ejercicio 3: htop (Mejorado)​

Paso 1: Instalación​

# Instalar htop
sudo apt update
sudo apt install htop

# Iniciar
htop

Paso 2: Funcionalidades de htop​

# htop ofrece:
# - Interfaz colorida e intuitiva
# - Navegación con flechas
# - Filtrado en tiempo real (F4)
# - Búsqueda (F3)
# - Matar procesos (F9)
# - Cambiar nice (F7/F8)
# - Árbol de procesos (F5)

Paso 3: Configuración​

# En htop:
# - F2: Setup (configuración)
# - F10: Salir

Ejercicio 4: Información Detallada​

Paso 1: /proc​

# Información sobre un proceso (reemplazar PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"

# Estado
cat /proc/$PID/status

# Archivos abiertos
ls -l /proc/$PID/fd/

# Directorio de trabajo
readlink /proc/$PID/cwd

# Ejecutable
readlink /proc/$PID/exe

Paso 2: lsof (si está instalado)​

# Instalar
sudo apt install lsof

# Archivos abiertos por un proceso
sudo lsof -p $PID

# Procesos usando un archivo
sudo lsof /var/log/syslog

# Conexiones de red
sudo lsof -i

Ejercicio 5: Monitorización en Tiempo Real​

Paso 1: watch​

# Monitorizar los procesos
watch -n 1 'ps aux --sort=-%cpu | head -10'

# Monitorizar un proceso específico
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'

Paso 2: Script de Monitorización​

# Crear un script
cat > ~/monitor-processes.sh << 'EOF'
#!/bin/bash
while true; do
clear
echo "=== $(date) ==="
echo
echo "Top 5 CPU:"
ps aux --sort=-%cpu | head -6
echo
echo "Top 5 Memoria:"
ps aux --sort=-%mem | head -6
echo
echo "Total procesos: $(ps aux | wc -l)"
sleep 2
done
EOF

chmod +x ~/monitor-processes.sh
# Iniciar: ./monitor-processes.sh

Ejercicio 6: Filtrado Avanzado​

Paso 1: Por Nombre​

# Encontrar todos los procesos que contienen "python"
ps aux | grep python

# Excluir el proceso grep en sí mismo
ps aux | grep python | grep -v grep

# Con pgrep
pgrep -a python

Paso 2: Por Usuario​

# Procesos de un usuario
ps -u root

# Todos excepto root
ps aux | grep -v "^root"

Paso 3: Por Estado​

# Procesos en ejecución
ps aux | grep " R "

# Procesos en espera
ps aux | grep " S "

# Procesos zombie
ps aux | grep " Z "

Verificación​

Checklist​

Verifique que usted puede:

  • Usar ps para ver los procesos
  • Usar top para monitorización en tiempo real
  • Usar htop (interfaz mejorada)
  • Filtrar y ordenar los procesos
  • Ver la información detallada (/proc)
  • Monitorizar en tiempo real

Preguntas de Reflexión​

  1. ¿Cuál es la diferencia entre ps y top?

    • ps: instantáneo
    • top: tiempo real, interactivo
  2. ¿Qué significan los estados de los procesos (R, S, Z)?

    • R: Running (en ejecución)
    • S: Sleeping (en espera)
    • Z: Zombie (terminado pero no limpiado)
  3. ¿Por qué se prefiere htop sobre top?

    • Interfaz más intuitiva
    • Navegación más fácil
    • Más información visual

Próximos Pasos​

  • Lab 4.2: Control de Procesos
  • Lab 4.3: Prioridades y Valores Nice
  • Capítulo 4.2: Visualización de Procesos

Lab creado el: diciembre 2024 - Probado en Ubuntu 24.04