Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search
Next Previous Contents

12. IRQ

12.1 Overview

IRQ is an asyncronous signal sent to microprocessor to advertise a requested work is completed

12.2 Interaction schema

                                 |<-->  IRQ(0) [Timer]
                                 |<-->  IRQ(1) [Device 1]
                                 | ..
                                 |<-->  IRQ(n) [Device n]
     /|\      /|\          /|\
      |        |            |
     \|/      \|/          \|/
    Task(1)  Task(2) ..   Task(N)
             IRQ - Tasks Interaction Schema

What happens?

A typical O.S. uses many IRQ signals to interrupt normal process execution and does some housekeeping work. So:

  1. IRQ (i) occurs and Task(j) is interrupted
  2. IRQ(i)_handler is executed
  3. control backs to Task(j) interrupted

Under Linux, when an IRQ comes, first the IRQ wrapper routine (named "interrupt0x??") is called, then the "official" IRQ(i)_handler will be executed. This allows some duties like timeslice preemption.

Next Previous Contents