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