A signal is an event sent by the kernel to a running program.
The signals can arrive at any time and software can choose what to do when it arrives: it can decide to ignore it or may decide to execute a signal handler and continue with what he did.
There are 31 different signals, and you can see them with:
kill -l
Of these there are 6 to be known by system administrators: