Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 2762

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>KernelAnalysis-HOWTO: IRQ </TITLE>
 <LINK HREF="KernelAnalysis-HOWTO-13.html" REL=next>
 <LINK HREF="KernelAnalysis-HOWTO-11.html" REL=previous>
 <LINK HREF="KernelAnalysis-HOWTO.html#toc12" REL=contents>
</HEAD>
<BODY>
<A HREF="KernelAnalysis-HOWTO-13.html">Next</A>
<A HREF="KernelAnalysis-HOWTO-11.html">Previous</A>
<A HREF="KernelAnalysis-HOWTO.html#toc12">Contents</A>
<HR>
<H2><A NAME="s12">12. IRQ </A></H2>

<H2><A NAME="ss12.1">12.1 Overview</A>
</H2>

<P>IRQ is an asyncronous signal sent to microprocessor to advertise
a requested work is completed
<P>
<H2><A NAME="ss12.2">12.2 Interaction schema</A>
</H2>

<P>
<PRE>
                                 |&lt;--&gt;  IRQ(0) [Timer]
                                 |&lt;--&gt;  IRQ(1) [Device 1]
                                 | ..
                                 |&lt;--&gt;  IRQ(n) [Device n]
    _____________________________| 
     /|\      /|\          /|\
      |        |            |
     \|/      \|/          \|/
 
    Task(1)  Task(2) ..   Task(N)
              
             
             IRQ - Tasks Interaction Schema
  

</PRE>
<H3>What happens?</H3>

<P>A typical O.S. uses many IRQ signals to interrupt normal process
execution and does some housekeeping work. So:
<P>
<P>
<OL>
<LI>IRQ (i) occurs and Task(j) is interrupted</LI>
<LI>IRQ(i)_handler is executed</LI>
<LI>control backs to Task(j) interrupted
</LI>
</OL>
<P>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.
<P>
<HR>
<A HREF="KernelAnalysis-HOWTO-13.html">Next</A>
<A HREF="KernelAnalysis-HOWTO-11.html">Previous</A>
<A HREF="KernelAnalysis-HOWTO.html#toc12">Contents</A>
</BODY>
</HTML>