Volver al temario
Tema 04 · 70 páginas

Comunicación y sincronización

Tema completo Modo estudio
GUÍA DE ESTUDIO · Páginas 3434 Ver PDF

3.2. Las señales de software (signals)

Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.

Señales de Software — Descripción

Resumen

Las señales de software son el mecanismo que el SO proporciona para trasladar las interrupciones de hardware al ámbito del proceso. Permiten a los procesos recibir notificaciones de acontecimientos imprevistos o asíncronos.

Analogía con interrupciones de hardware

  • Igual que las interrupciones de hardware, las señales dan soporte a situaciones que los procesos deben conocer y atender con urgencia.
  • Ejemplo: un proceso puede necesitar saber si hubo un error de acceso a memoria, si un terminal fue apagado, etc.

Procedencia de las señales

  1. Dispositivos de E/S: informan de situaciones como desconexión de terminal, pulsación de tecla de control, etc.

  2. Excepciones: provocadas involuntariamente durante la ejecución (división por cero, overflow, acceso a memoria inválido, instrucción anómala).

  3. Llamadas explícitas al sistema: un proceso envía una señal a otro (con permiso; generalmente entre procesos del mismo dominio de protección). Ejemplo: orden para eliminar un proceso, sincronización entre procesos.

  4. Reloj del sistema: acciones a intervalos concretos de tiempo (timeout). Ejemplo: detectar si una línea de módem se ha cortado.

  5. Efecto lateral de una llamada al sistema: el proceso padre recibe una señal cuando un hijo ha sido destruido.

Tratamiento de las señales

Cuando un proceso recibe una señal, puede:

  1. Tratamiento definido por el usuario: el proceso indica qué procedimiento ejecutar al recibir la señal.
  2. Ignorar: el proceso continúa su ejecución normalmente.
  3. Tratamiento por defecto del SO: normalmente la destrucción del proceso. El SO informa al proceso padre del motivo.

Destrucción de procesos

Un proceso será destruido por el SO si recibe una señal no esperada a causa de:

  • Error en su ejecución.
  • Acontecimiento imprevisto en un dispositivo.
  • Actuación deliberada de otro proceso.

El SO envía el estado de finalización al proceso padre.

Programación de señales

La programación de señales (qué tratamiento asociar a cada señal) es información propia de cada proceso. Debe almacenarse en el PCB (Process Control Block) y tenerse en cuenta al crear un nuevo proceso.

Ideas clave

  • Las señales son la versión de software de las interrupciones de hardware.
  • Proceden de dispositivos, excepciones, llamadas explícitas, reloj o efectos laterales.
  • Tres opciones de tratamiento: usuario, ignorar o por defecto del SO.
  • El tratamiento por defecto suele ser la destrucción del proceso.
  • La programación de señales se almacena en el PCB.
Consultar el contenido original