Pular para o conteúdo principal

Lab 4.1 - Visualização de Processos

Objetivos​

Ao final deste lab, você será capaz de:

  • Visualizar processos com ps, top, htop
  • Entender as informações exibidas
  • Filtrar e ordenar processos
  • Monitorar processos em tempo real

Pré-requisitos​

  • Ubuntu 24.04 instalado
  • Terminal aberto
  • htop instalado (opcional, mas recomendado)

Exercício 1: ps (Status do Processo)​

Etapa 1: Comandos Básicos​

# Ver todos os processos
ps aux

# Ver os processos do usuário atual
ps

# Com mais detalhes
ps auxf # Árvore de processos

# Ver um processo específico
ps aux | grep firefox

Etapa 2: Opções Úteis​

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

# Processos por usuário
ps -u $USER

# Processos por PID
ps -p 1

# Processos em árvore
pstree
pstree -p # Com PID

Etapa 3: Análise​

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

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

# Contar processos
ps aux | wc -l

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

Exercício 2: top​

Etapa 1: Uso Básico​

# Iniciar top
top

# Comandos no top:
# - 'q': Sair
# - 'k': Matar um processo (inserir PID)
# - 'r': Renice em um processo
# - 'M': Ordenar por memória
# - 'P': Ordenar por CPU
# - 'f': Alterar colunas exibidas
# - '1': Ver todos os CPUs

Etapa 2: Modo Batch​

# Executar top em modo batch (uma vez)
top -bn1 | head -20

# Salvar em um arquivo
top -bn1 > top-output.txt

# Ver os principais processos
top -bn1 | grep -A 20 "PID USER"

Exercício 3: htop (Aprimorado)​

Etapa 1: Instalação​

# Instalar htop
sudo apt update
sudo apt install htop

# Iniciar
htop

Etapa 2: Funcionalidades do htop​

# htop oferece:
# - Interface colorida e intuitiva
# - Navegação com setas
# - Filtro em tempo real (F4)
# - Busca (F3)
# - Matar processo (F9)
# - Renice (F7/F8)
# - Árvore de processos (F5)

Etapa 3: Configuração​

# No htop:
# - F2: Setup (configuração)
# - F10: Sair

Exercício 4: Informações Detalhadas​

Etapa 1: /proc​

# Informações sobre um processo (substitua PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"

# Status
cat /proc/$PID/status

# Arquivos abertos
ls -l /proc/$PID/fd/

# Diretório de trabalho
readlink /proc/$PID/cwd

# Executável
readlink /proc/$PID/exe

Etapa 2: lsof (se instalado)​

# Instalar
sudo apt install lsof

# Arquivos abertos por um processo
sudo lsof -p $PID

# Processos usando um arquivo
sudo lsof /var/log/syslog

# Conexões de rede
sudo lsof -i

Exercício 5: Monitoramento em Tempo Real​

Etapa 1: watch​

# Monitorar processos
watch -n 1 'ps aux --sort=-%cpu | head -10'

# Monitorar um processo específico
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'

Etapa 2: Script de Monitoramento​

# Criar um 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 Memória:"
ps aux --sort=-%mem | head -6
echo
echo "Total de processos: $(ps aux | wc -l)"
sleep 2
done
EOF

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

Exercício 6: Filtragem Avançada​

Etapa 1: Por Nome​

# Encontrar todos os processos contendo "python"
ps aux | grep python

# Excluir o próprio processo grep
ps aux | grep python | grep -v grep

# Com pgrep
pgrep -a python

Etapa 2: Por Usuário​

# Processos de um usuário
ps -u root

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

Etapa 3: Por Estado​

# Processos em execução
ps aux | grep " R "

# Processos em espera
ps aux | grep " S "

# Processos zumbi
ps aux | grep " Z "

Verificação​

Checklist​

Verifique se você consegue:

  • Usar ps para ver os processos
  • Usar top para monitoramento em tempo real
  • Usar htop (interface aprimorada)
  • Filtrar e ordenar processos
  • Ver informações detalhadas (/proc)
  • Monitorar em tempo real

Perguntas para Reflexão​

  1. Qual a diferença entre ps e top?

    • ps: instantâneo
    • top: tempo real, interativo
  2. O que significam os estados dos processos (R, S, Z)?

    • R: Running (em execução)
    • S: Sleeping (em espera)
    • Z: Zombie (finalizado, mas não limpo)
  3. Por que o htop é preferido ao top?

    • Interface mais intuitiva
    • Navegação mais fácil
    • Mais informações visuais

Próximos Passos​

  • Lab 4.2: Controle de Processos
  • Lab 4.3: Prioridades e Valores Nice
  • Capítulo 4.2: Visualização de Processos

Lab criado em: Dezembro 2024 - Testado no Ubuntu 24.04