Exceptions And Interrupts in operating systems

Interrupts and exceptions are the events that can stop the normal operation of CPU for a temporary/permanent period.

What is Interrupt?

Interrupts are events that are generated by hardware or software and these events stop the normal operation of CPU for a temporary period.

There are two types of interrupts;

Synchronous interrupts. For example, software interrupts, commonly called exceptions.

Asynchronous interrupts. For example, hardware interrupts.


[quads id=1]

What are types of interrupts?

Maskable interrupts

Nonmaskable interrupts

What are maskable interrupts?

Maskable interrupts are those interrupts that can be denied by CPU.

Maskable interrupts can be disabled by the programmer. When interrupts are disabled by the programmer then interrupts are not handled, it does not matter that interrupts have priority high or having no priority.

What are examples of maskable interrupts?

I/O device interrupts can’t be delayed.

What are nonmaskable interrupts?

Nonmaskable interrupts are interrupts that can’t be denied by CPU due to their more priority.

  • For example:
    • Critical hardware failure can’t be denied
    • System resets can’t be denied.


[quads id=3]

What are examples of Non-maskable interrupts?

  • Software interrupts can’t be delayed or denied.
  • Critical hardware failure can’t be denied.
  • System resets can’t be denied

What are exceptions?

Synchronous interrupts are called exceptions. Instruction faults are referred as exceptions.


Division by zero

What are asynchronous exceptions?

asynchronous exceptions can occur accidentally at any place.

What are examples of asynchronous exceptions?

    • I.O request
    • Hardware malfunction
    • Power failure

What are synchronous exceptions?

Software interrupts are referred as synchronous exceptions.

Synchronous exceptions always occur when event reached to a certain statement in the source code.

[quads id=2]
  • Examples:
    • Tracing the instruction execution
    • arithmetic overflow
    • breakpoints
    • page fault etc
  • Division of synchronous exceptions:
    • Faults
    • Traps
    • Aborts

What are faults?

Faults are unintentional and mostly recoverable.

For example;

page faults recoverable

Protection fault not recoverable

Faults are detected and serviced by the processor before the faulting instructions.

What are traps?

Traps are caused by an exceptional condition.

e.g Invalid memory accesses, division by zero and breakpoints.

Traps are intentional.

Results in switching from user mode to kernel mode.

Traps are serviced after the instruction causing the trap. User-defined interrupts go into this category and can be said to be trapped.

A trap is a kind of exceptions, whose main purpose is for debugging (eg. notify the debugger that an instruction has been reached).

What are aborts?

Aborts occur when severe system problems occur, and recovery is not possible.

e.g parity error and hardware error.