Many, if not most, peripheral controllers use a hardware interrupt to inform the OS or device driver that some (usually urgent) action is required. Typical examples include network adapters (NICs), block devices (disks), USB devices, AV devices, human interface devices (HIDs) such as keyboards, mice, touchscreens, and video screens, clocks/timer chips, DMA controllers, and so on. The primary idea behind hardware interrupts is efficiency. Instead of continually polling the chip (on a battery-backed device, this can result in rapidly draining the battery!), the interrupt is a means to have the low-level software run only as and when required.
Here's a quick hardware-level overview (without getting into too much detail): modern system motherboards will have an interrupt controller chip of some sort, which is often called the [IO][A]PIC, short for IO-[Advanced]Â Programmable Interrupt Controller, on x86 (the kernel documents for...