Un signal est généré par le noyau lorsqu'un événement matériel (interruption) ou logiciel (déroutement) apparaît de manière à provoquer le traitement d'exception correspondant. Cependant, les signaux peuvent aussi être générés par les processus eux-mêmes de manière à communiquer entre eux. En effet, du fait de l'autonomie des processus, ces derniers peuvent accéder de manière concurrente à une ressource donnée. S'ils veulent travailler de concert, un système de signalisation doit être mis en place.