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