Qu'est-ce que la programmation des signaux?
"Programmation de signaux" est un terme souvent utilisé pour désigner un programme informatique qui fonctionne principalement en réponse aux signaux ou événements générés par un certain changement d'état ou par entrée utilisateur. Presque n'importe quelle partie d'un système informatique, d'un appareil périphérique au système d'exploitation lui-même, peut générer un signal qui peut être capturé par une application puis traité. Dans de nombreuses formes, la programmation de signal ressemble à une programmation axée sur les événements. Certaines des utilisations les plus courantes de la programmation de signaux sont avec des interfaces utilisateur graphiques qui répondent aux entrées des utilisateurs, aux communications réseau et aux programmes de bas niveau qui capturent et gérent des signaux système spécifiques.
Un signal dans la programmation informatique peut être défini comme un message, un événement ou une interruption, en fonction de son origine, de l'architecture du système ou même de la préférence du programmeur. Dans les termes les plus larges, il s'agit d'un indicateur que certains états ou des données ont changé, et il s'accompagne parfois d'informations supplémentaires sur le changement qui as'est produit. Le signal peut être généré par l'utilisateur lorsqu'une touche est enfoncée, à partir de matériel tel qu'un moniteur lorsqu'une retraite verticale se produit, ou même à partir du système d'exploitation lorsque quelque chose comme un défaut de page se produit pendant l'attribution de la mémoire.
Dans une application, la programmation de signaux peut prendre plusieurs types d'architectures, mais l'une des plus courantes est un modèle d'écoute ou d'observateur. Dans cette méthode, un morceau de code défini par l'utilisateur peut être passé d'une manière ou d'une autre à un gestionnaire de signaux, généralement dans le système d'exploitation, qui appelle ensuite ce morceau de code pour traiter tous les signaux qui correspondent à la fonction de la fonction. Le type de signal qu'une fonction peut gérer souvent est déterminé par une variable connue sous le nom de masque de signal, de sorte que certains signaux ne sont pas transmis aux routines non conçues pour les gérer.
Un deuxième type de programmation de signal implique d'avoir un programme qui implémente une file d'attente qui accepte le SIG entrantNals. Cette file d'attente est interrogée dans la boucle d'exécution principale du programme et que le programme réagit une fois qu'un signal entre dans la file d'attente. Chaque signal peut alors être logiquement trié, manipulé, ignoré ou transmis à un autre processus.
Certaines difficultés peuvent survenir dans la programmation des signaux lorsque des processus simultanés ou des applications multi-thread sont utilisés. Les complications peuvent survenir si, par exemple, deux threads distincts écoutent les signaux générés par deux périphériques d'entrée utilisateur distincts, ou à partir de deux prises de réseau. Si deux utilisateurs tentent simultanément de modifier certaines données, les données du programme pourraient tomber hors synchronisation et apparaître différemment à chaque utilisateur. L'utilisation d'une file d'attente linéaire ou des méthodes de synchronisation de threads implémentaires peut aider à empêcher cette situation.