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:
- IRQ (i) occurs and Task(j) is interrupted
- IRQ(i)_handler is executed
- 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