Asincronismo
El asincronismo se refiere a un estilo de programación en el que las tareas o procesos no se ejecutan secuencialmente uno después del otro, sino de manera independiente y concurrente. En lugar de esperar a que una tarea se complete antes de iniciar la siguiente, el asincronismo permite que múltiples tareas se ejecuten simultáneamente y se comuniquen entre sí a través de eventos, callbacks u otros mecanismos.
Señales
Una señal es un mecanismo utilizado por los sistemas operativos para notificar a los procesos de eventos y condiciones particulares que ocurren en el sistema. Las señales son utilizadas para manejar eventos asíncronos, como interrupciones, errores, eventos de temporización, solicitudes de terminación y otros eventos importantes del sistema.
Cuando se genera una señal, se envía al proceso o procesos destinatarios, interrumpiendo su ejecución normal y generando una respuesta específica según cómo se haya configurado el manejo de la señal. Los procesos pueden recibir, ignorar o manejar diferentes señales según sea necesario.
Caracteristicas:
- Notificación asincronica
- Cualquier proceso puede recibir señales en cualquier momento, por eso es asincronica.
- Yo le puedo decir al proceso que hacer con la señal que le mando
Ejemplos:
- SIGINT (Interrupt Signal): Enviada al proceso cuando se presiona la combinación de teclas Ctrl+C. Por lo general, se usa para solicitar la terminación ordenada de un programa, ya que interrumpe al proceso mientras se esta ejecutando.
- SIGTERM (Termination Signal): Enviada al proceso para solicitar su terminación ordenada, se ejecuta con ctrl + z . Puede ser enviado por otros procesos o por comandos del sistema operativo.
- SIGKILL (Kill Signal): Una señal especial que no puede ser ignorada ni manejada por el proceso receptor. Se utiliza para forzar la terminación inmediata de un proceso.
- SIGHUP (Hangup Signal): Enviada al proceso cuando la conexión con el terminal o la sesión se cierra. Se utiliza para solicitar la recarga de la configuración o la reinicialización del proceso.
- SIGSEGV (Segmentation Violation Signal): Enviada al proceso cuando se produce un error de acceso a memoria no válido, como un intento de acceder a una dirección de memoria no asignada.
Otras Notas:
- kill -9 es para terminar con un proceso directamente.
- Hay como 60+ señales de proceso y se ejecutan con kill -numero y su correspondiente numero.
- No puede ignorarse el SIGKILL, es un error invalido.