How do interrupts work, what is the significance of an Interrupt Service Routine (ISR), and what limitations apply inside an ISR?