Linux is a system on which devices notify the kernel about particular events by means of IRQs. The CPU exposes IRQ lines, shared or not, and used by connected devices, so that when a device needs the CPU it sends a request to the CPU. When the CPU gets this request, it stops its actual job and saves its context, in order to serve the request issued by the device. After serving the device, its state is restored back to exactly where it stopped when the interruption occurred. There are so many IRQ lines that another device is responsible for them to the CPU. That device is the interrupt controller:
Interrupt controller and IRQ lines
Not only can devices raise interrupts, some processor operations can do that too. There are two different kinds of interrupts:
- Synchronous interrupts, called exceptions, produced by the CPU while processing instructions. These...