3.2.1. Descripción
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Descripción de las señales de software
Concepto fundamental
Las señales de software son el mecanismo mediante el cual el sistema operativo traslada el concepto de interrupciones de hardware al ámbito de los procesos. Permiten informar a un proceso de acontecimientos imprevistos o asíncronos que ocurren durante la ejecución de un programa.
Clasificación por procedencia
Las señales se clasifican según su origen:
- Dispositivos de entrada/salida: informan de situaciones como la desconexión de un terminal o la pulsación de teclas de control
- Excepciones: provocadas por el proceso de manera involuntaria durante la ejecución (división por cero, overflow, acceso a memoria inválido)
- Llamadas explícitas al sistema: permite enviar señales a procesos determinados, requiriendo permisos del mismo dominio de protección
- Reloj del sistema: utilizado para acciones a intervalos concretos de tiempo (timeouts)
- Efectos laterales de llamadas al sistema: por ejemplo, cuando un proceso hijo es destruido
Tratamiento de señales
Un proceso puede optar por tres tipos de tratamiento:
- Tratamiento definido por el usuario: el proceso indica qué procedimiento ejecutar cuando llegue una señal
- Ignorar la señal: el proceso continúa su ejecución normalmente
- Tratamiento por defecto del SO: normalmente implica la destrucción del proceso
Consideraciones importantes
- La programación de señales es información propia de cada proceso
- Debe formar parte del PCB (Process Control Block)
- Se debe tener en cuenta al crear nuevos procesos
- Un proceso será destruido si recibe una señal no esperada por error, acontecimiento imprevisto o actuación deliberada de otro proceso
Ideas clave
- Las señales son interrupciones de software que permiten la comunicación asíncrona
- Existen cinco fuentes principales de señales
- El proceso puede definir, ignorar o usar el tratamiento por defecto
- Las señales son parte esencial del PCB y se heredan al crear procesos