signal processing defines how a program handles various signals while it executes. A signal can report some exceptional behavior within the program ( such as division by zero ), or a signal can report some asynchronous event outside the program ( such as someone striking an interactive attention key on a keyboard ).