Os signals são acontecimentos assíncronos que podem ser gerados pelo hardware, por uma qualquer excepção detectada pelo próprio sistema, ou ainda, por software. Estes últimos, visam dotar, os programas criados, da capacidade necessária para que os processos possam comunicar devidamente entre si e, dessa forma, atingirem um elevado grau de cooperação.
Podemos imaginar um hospital em que os médicos trabalham por turnos.
Quando acaba um turno, um médico tenta dormir até que chegue a hora do seu turno
seguinte. Para que não deixe passar a hora, lembrou-se de programar um despertador
para tocar na altura desejada. Foi então dormir...
Quando chegou a hora, o despertador tocou, sem se importar com mais nada nem com o que
o médico estava a fazer.
Este é o exacto modo de actuação do sinal SIGALARM. Este sinal, é gerado pelo próprio
processo para que o desperte passado algum tempo, durante o qual ele se adormece a si
próprio. Normalmente, este procedimento é usado quando um processo necessita aguardar
que um outro termina uma determinada tarefa antes de poder prosseguir com a execução
do seu código.
Há ainda outros sinais que, apresentando o mesmo tipo de comportamento assíncrono, são, no entanto, gerados por outros processos como forma de comunicação ou interacção.
Se para um determinado signal não existir nenhuma rotina preparada para o seu
tratamento, o signal é ignorado. É de notar, no entanto, que há signals
para os quais o próprio sistema tem já rotinas.