For each process, the operating system maintains 2 integers with the bits corresponding to a signal numbers.
The two integers keep track of:
- pending signals
- blocked signals
With 32 bit integers, up to 32 different signals can be represented.
In the example below, the SIGINT ( = 2) signal is blocked and no signals are pending.
| Pending Signals | ||||||||
|---|---|---|---|---|---|---|---|---|
| 31 | 30 | 29 | 28 | ... | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 |
| Blocked Signals | ||||||||
|---|---|---|---|---|---|---|---|---|
| 31 | 30 | 29 | 28 | ... | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 |