Software Based Interrupt System

We already know that there are various I/O modules present so the problems are:

  1.  How the processor will come to know which module has raised the interrupt?
  2.  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.

  1. Basically, polling means going and asking each device separately.
  2. It is a  non vectored interrupt.
  3. A lot of time is spent as overhead during polling that's why it is a slower approach.

Now, will discuss Hardware Based approach.