interrupt handler

from The Free On-line Dictionary of Computing (8 July 2008)
interrupt handler

   <software> A routine which is executed when an {interrupt}
   occurs.  Interrupt handlers typically deal with low-level
   events in the hardware of a computer system such as a
   character arriving at a {serial port} or a tick of a
   {real-time clock}.  Special care is required when writing an
   interrupt handler to ensure that either the interrupt which
   triggered the handler's execution is masked out (inhibitted)
   until the handler exits, or the handler is {re-entrant} so
   that multiple concurrent invocations will not interfere with
   each other.

   If interrupts are masked then the handler must execute as
   quickly as possible so that important events are not missed.
   This is often arranged by splitting the processing associated
   with the event into "upper" and "lower" halves.  The lower
   part is the interrupt handler which masks out further
   interrupts as required, checks that the appropriate event has
   occurred (this may be necessary if several events share the
   same interrupt), services the interrupt, e.g. by reading a
   character from a {UART} and writing it to a {queue}, and
   re-enabling interrupts.

   The upper half executes as part of a user process.  It waits
   until the interrupt handler has run.  Normally the {operating
   system} is responsible for reactivating a process which is
   waiting for some low-level event.  It detects this by a shared
   {flag} or by inspecting a shared queue or by some other
   synchronisation mechanism.  It is important that the upper and
   lower halves do not interfere if an interrupt occurs during
   the execution of upper half code.  This is usually ensured by
   disabling interrupts during {critical sections} of code such
   as removing a character from a queue.

   (2002-07-24)
    

[email protected]