Signals



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.

despertador - gif animado
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.



Mecanismos de Sincronização Enviar mail aos autores Semaforos


HomePage Menu Mecanismos de Sincronização Signals Semáforos Comunicação entre Processos Pipes Memória Partilhada Problemas de Programação Concorrente Glossário Links