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 |