O que é programação de sinal?

"Programação de sinal" é um termo frequentemente usado para se referir a um programa de computador que funciona principalmente em resposta a sinais ou eventos gerados por alguma mudança no estado ou pela entrada do usuário. Quase qualquer parte de um sistema de computador, de um dispositivo periférico até o próprio sistema operacional, pode gerar um sinal que pode ser capturado por um aplicativo e depois processado. Em muitas formas, a programação de sinal se assemelha à programação orientada a eventos. Alguns dos usos mais comuns para a programação de sinal são com interfaces gráficas de usuário que respondem à entrada do usuário, comunicações de rede e programas de baixo nível que capturam e lidam com sinais específicos do sistema. Nos termos mais amplos, é um indicador que algum estado ou dados mudou e às vezes é acompanhado por informações adicionais sobre a alteração que mudouocorreu. O sinal pode ser gerado pelo usuário quando uma tecla é pressionada, a partir de hardware como um monitor quando ocorre uma reflexão vertical, ou mesmo do sistema operacional quando algo como uma falha de página acontece durante a alocação de memória.

Dentro de uma aplicação, a programação de sinal pode assumir vários tipos de arquiteturas, mas um dos mais comuns é um ouvinte ou modelo de observador. Neste método, um código definido pelo usuário pode ser passado de alguma forma para um manipulador de sinal, geralmente dentro do sistema operacional, que chama esse código para processar quaisquer sinais que correspondam ao que a função está buscando. O tipo de sinal que uma função pode lidar com frequência é determinado por uma variável conhecida como máscara de sinal; portanto, alguns sinais não são passados ​​para rotinas não projetadas para lidar com elas.

Um segundo tipo de programação de sinal envolve ter um programa que implementa uma fila que aceita SIG de entradanals. Esta fila é pesquisada no circuito de execução principal do programa e o programa reage quando um sinal entra na fila. Cada sinal então pode ser classificado logicamente, manipulado, ignorado ou passado para outro processo.

Algumas dificuldades podem surgir na programação de sinais quando processos simultâneos ou aplicativos com vários threads são usados. As complicações podem surgir se, por exemplo, dois threads separados estiverem ouvindo sinais gerados por dois dispositivos de entrada do usuário separados ou de dois soquetes de rede. Se dois usuários tentarem fazer uma alteração em alguns dados, os dados do programa poderão cair da sincronização e aparecer de maneira diferente para cada usuário. Usar uma fila linear ou implementar métodos de sincronização de threads pode ajudar a prevenir essa situação.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?