Aula 8: Sinais — Comunicação entre Processos
Sinais são um mecanismo leve do sistema operacional para enviar eventos assíncronos a um processo. Nesta aula vamos estudar o ciclo de vida de um sinal: envio, recebimento, tratamento — e entender por que SIGKILL é perigoso para processos que retêm recursos de GPU.
Um sinal é como um toque no ombro de um processo: SIGTERM diz 'por favor, encerre você mesmo', SIGKILL diz 'morra agora' — e nesse segundo caso não há tempo para limpar.
- sinal
- Uma notificação assíncrona curta enviada a um processo pelo kernel ou por outro processo para sinalizar um evento (erro, pedido de encerramento, interrupção do usuário).
- SIGTERM
- Sinal 15 — um pedido educado de encerramento que pode ser capturado e tratado, permitindo que o processo libere recursos antes de sair.
- SIGKILL
- Sinal 9 — um encerramento forçado que não pode ser capturado, bloqueado ou ignorado; o kernel mata o processo imediatamente, sem limpeza.
- manipulador de sinal
- Uma função registrada com signal() ou sigaction() que é chamada de forma assíncrona quando um sinal chega. Só são permitidas operações async-signal-safe dentro dela.
- sigaction
- A interface POSIX completa para registrar handlers de sinal, dando controle sobre a máscara de sinais e flags adicionais, além da simples chamada signal().