1. An interrupt service routine (ISR) is called by the processor in response to an interrupt from a hardware device or software instruction. ISRs execute specific code to service the interrupt, such as reading input from a device.
2. ISRs are similar to functions but are called asynchronously in response to interrupts rather than planned program flow. They save the processor context before executing to ensure a timely response.
3. Embedded systems often use interrupt-driven I/O and device access where devices generate interrupts to signal data availability rather than being polled continuously. This allows the processor to switch tasks efficiently.