Interrupts : An interrupt is a mechanism by which other modules (I/O, memory) may interrupt the normal sequencing of the processor. Interrupts are signals from a device attached to a computer or from a program within the computer that require the operating system to stop and figure out what to do next. When an interrupt signal is detected, the computer usually resumes the existing system or starts a new one. It is an asynchronous process. It is also known as a hardware interrupt.
Traps : Trap, also known as an exception or a fault. It's a signal raised by a user software to the operating system, prompting it to execute some action as soon. It is a synchronous process. All traps are interrupt. It is also known as a software interrupt. In a trap, the execution of a process is prioritized over the execution of user code.
Interrupts handling in Operating System :
If an interrupt occurs, the interrupt handler will be triggered, and the handler will halt the current instruction from executing, save its configurations in a register, and load the interrupt's program counter from a position specified by the interrupt directive table. When an error or interrupt occurs, the program switches from user mode to kernel mode, where the problem is resolved. To handle an exception or interrupts in detail, follow the instructions below. The context of the presently running process must be stored to memory before entering the kernel. It is now prepared to deal with the interrupts.
- Determine the cause of the interrupt.
- Handle the interrupt.
After the processor interrupt handler has processed the interrupt, the instruction and its configuration will be loaded from the stored register, and the process will resume where it left off. Context switching is the process of saving the previous instruction processing configuration and loading the new interrupt configuration.
The interrupt handler is also called as Interrupt service routine (ISR). There are different types of interrupt handler which will handle different interrupts.