Lección 8: Señales — comunicación entre procesos
Las señales son un mecanismo ligero del sistema operativo para enviar eventos asíncronos a un proceso. En esta lección estudiamos el ciclo de vida de una señal: envío, recepción, manejo — y entendemos por qué SIGKILL es peligrosa para procesos que retienen recursos de GPU.
Una señal es como un toque en el hombro para un proceso: SIGTERM dice 'por favor, cierra tú mismo', SIGKILL dice 'muere ahora' — y en el segundo caso no hay tiempo para limpiar.
- señal
- Una notificación asíncrona breve que el kernel u otro proceso envía a un proceso para señalar un evento (error, solicitud de terminación, interrupción del usuario).
- SIGTERM
- Señal 15 — una solicitud educada de terminación que se puede capturar y manejar, permitiendo que el proceso libere recursos antes de salir.
- SIGKILL
- Señal 9 — una terminación forzada que no se puede capturar, bloquear ni ignorar; el kernel mata al proceso de inmediato sin limpieza.
- manejador de señal
- Una función registrada con signal() o sigaction() que se invoca de forma asíncrona cuando llega una señal. Dentro de ella solo se permiten operaciones async-signal-safe.
- sigaction
- La interfaz POSIX completa para registrar manejadores de señal, que da control sobre la máscara de señales y opciones adicionales, a diferencia de la simple llamada signal().