A signal is sent to a process setting the corresponding bit in the pending signals integer for the process.
Each time the operating system selects a process to be run on a processor, the pending and blocked integers are checked.
If no signals are pending, the process is restarted normally and continues executing at its next instruction.
If 1 or more signals are pending, but each one is blocked, the process is also restarted normally but with the signals still marked as pending.
If 1 or more signals are pending and NOT blocked, the operating system executes the routine in the process's code to handle the signal. If that handler routine returns, the process continues where it would have normally executed its next instruction.