title: What is Interrupt Threading?
body: <p><em>(NB: This is not about interrupting Java/.NET threads, this is about kernel-mode interrupts.)</em></p>
  
  <p>Hi,</p>
  
  <p>Wikipedia has this to say about Interrupt Threads in the <a href="http://en.wikipedia.org/wiki/Interrupt_handler" rel="nofollow">Interrupt handler</a> article:</p>
  
  <blockquote>
    <p>Interrupt threads</p>
    
    <p>Several operating systems - Solaris,
    NetBSD, Mac OS X, WinCE and FreeBSD,
    for example - use different scheme
    known as interrupt threads. An
    interrupt handler provided by the
    device driver is just a high-priority
    thread which runs with interrupts
    enabled and, more importantly, may
    block on mutex. This greatly
    simplifies locking in the kernel.
    Also, interrupt thread may be
    preempted by higher-priority interrupt
    thread.</p>
  </blockquote>
  
  <p><strong>What is this technique of Interrupt Threads that FreeBSD (among others) apparently uses? And where can I read more about it?</strong></p>
  
  <p>Thanks in advance. :)</p>