Signals were introduced by the first Unix systems to allow interactions between User Mode processes; the kernel also uses them to notify processes of system events. Signals have been around for 30 years with only minor changes.
A signal is a very short message that may be sent to a process or a group of processes. The only information given to the process is usually a number identifying the signal; there is no room in standard signals for arguments, a message, or other accompanying information.
A set of macros whose names start with the prefix SIG is used to identify signals.
Signals serve two main purposes:
To make a process aware that a specific event has occurred
To cause a process to execute a signal handler function included in its code
Of course, the two purposes are not mutually exclusive, because often a process must react to some event by executing a specific routine.