- The CPU hardware has a wire called Interrupt request line that CPU checks after executing every instruction.
- When the CPU detects that a device controller has pass a signal on interrupt request line, the CPU saves a small amount of state such as current value of instruction pointer and jumps to the interrupt handler routine at a fixed address in the memory.
- The interrupt handler performs necessary action and executes from interrupt instruction to return the CPU to the execution state prior to the interrupt.
- Each device has device controller. It sets interrupt request line 1 if that device generates interrupt.
- Most CPU has 2 interrupt request line.
(1) For Non – Markable interrupt which is reserved for events such as unrecoverable memory errors.
(2) For markable interrupt which is used by device controller to request service.
- The interrupt mechanism accepts an address; It is a number that selects a specific interrupt handling routine from a set.
- This address is an offset in the interrupt vector table. This vector table contains the memory address of interrupt handler.
- The interrupt mechanism also implements a system of interrupt priority levels.
- This mechanism enables the CPU to execute high priority interrupt by preempting the execution of low priority interrupt.
- A modern O/S interacts with interrupt mechanism in several ways.
- At the boot up time the OS checks the hardware buses to determine which devices are present and installs the corresponding interrupt handler addresses into the interrupt vector.
- During I/O, the various device controller raise interrupt, when they are ready for service.
- The interrupt mechanism is also used to handle a wide variety at exception such as divide by 0, accessing a protected or non existent memory address.
- A system call is a function call by an application program to invoke a kernel service.
- The system call checks the argument given by the application and executes a special instruction called S/W interrupt or trap.
- When the system call executes the trap instruction, the interrupt hardware saves the state of user mode, switches to kernel mode and executes the requested service.
- Interrupts are used throughout modern operating system to handle asynchronous events and trap to kernel mode routines in the kernel.
Interrupt driven I/O cycle.