We already know that there are various I/O modules present so the problems are:
- How the processor will come to know which module has raised the interrupt?
- If multiple interrupts have been raised, how the processor will decide which interrupt to proceed?
1.Software Based Implementation:
Here we use a method called polling. When the processor gets an interrupt it directly jumps to ISR(Interrupt Service Routine ) whose job is to go to each interrupting device and ask whether it has raised the interrupt.
- Basically, polling means going and asking each device separately.
- It is a non vectored interrupt.
- A lot of time is spent as overhead during polling that's why it is a slower approach.
Now, will discuss Hardware Based approach.