Dictionary Definition
interruption
Noun
1 an act of delaying or interrupting the
continuity; "it was presented without commercial breaks" [syn:
break, disruption, gap]
2 some abrupt occurrence that interrupts; "the
telephone is an annoying interruption"; "there was a break in the
action when a player was hurt" [syn: break]
3 a time interval during which there is a
temporary cessation of something [syn: pause, intermission, break, suspension]
User Contributed Dictionary
English
Pronunciation
Noun
Translations
the act of interrupting, or the state of being
interrupted
- German: Unterbrechung
- Japanese: 中断 (chūdan)
- Telugu: అంతరాయం (amtaraayam)
a time interval during which there is a
cessation of something
- German: Unterbrechung
- Japanese: 中断 (chūdan)
- Telugu: అంతరాయం (amtaraayam)
See also
Extensive Definition
In computing, an interrupt is an
asynchronous
signal from hardware indicating the need for attention or a
synchronous event in software indicating the need for a change in
execution. A hardware interrupt causes the processor
to save its state of execution via a context
switch, and begin execution
of an interrupt
handler. Software interrupts are usually implemented as
instructions in the instruction
set, which cause a context switch to an interrupt handler
similar to a hardware interrupt. Interrupts are a commonly used
technique for computer
multitasking, especially in real-time computing. Such a system
is said to be interrupt-driven.
An act of interrupting is referred to as an
interrupt
request ("IRQ").
Overview
Hardware interrupts were introduced as a way to avoid wasting the processor's valuable time in polling loops, waiting for external events.Interrupts may be implemented in hardware as a
distinct system with control lines, or they may be integrated into
the memory subsystem.
If implemented in hardware, an interrupt
controller circuit such as the IBM PC's
Programmable Interrupt Controller (PIC) may be connected
between the interrupting device and to the processor's interrupt
pin to multiplex several sources of interrupt onto the one or two
CPU lines typically available.
If implemented as part of the memory controller,
interrupts are mapped into the system's memory address space.
Interrupts can be categorized into: maskable
interrupt (IRQ),
non-maskable
interrupt (NMI), interprocessor
interrupt (IPI), software interrupt, and spurious
interrupt.
- A maskable interrupt (IRQ) is a hardware interrupt that may be ignored by setting a bit in an interrupt mask register's (IMR) bit-mask.
- Likewise, a non-maskable interrupt (NMI) is a hardware interrupt that does not have a bit-mask associated with it - meaning that it can never be ignored. NMIs are often used for timers, especially watchdog timers.
- An interprocessor interrupt is a special case of interrupt that is generated by one processor to interrupt another processor in a multiprocessor system.
- A software interrupt is an interrupt generated within a processor by executing an instruction. Software interrupts are often used to implement System calls because they implement a subroutine call with a CPU ring level change.
- A spurious interrupt is a hardware interrupt that is unwanted. They are typically generated by system conditions such as electrical interference on an interrupt line or through incorrectly designed hardware.
Processors typically have an internal interrupt
mask which allows software to ignore all external hardware
interrupts while it is set. This mask may offer faster access than
accessing an interrupt mask register (IMR) in a PIC, or disabling
interrupts in the device itself. In some cases, such as the
x86
architecture, disabling and enabling interrupts on the processor
itself acts as a memory
barrier, in which case it may actually be slower.
An interrupt that leaves the machine in a
well-defined state is called a precise interrupt. Such an interrupt
has four properties:
- The Program Counter (PC) is saved in a known place.
- All instructions before the one pointed to by the PC have fully executed.
- No instruction beyond the one pointed to by the PC has been executed (That is no prohibition on instruction beyond that in PC, it is just that any changes they make to registers or memory must be undone before the interrupt happens).
- The execution state of the instruction pointed to by the PC is known.
An interrupt that does not meet these
requirements is called an imprecise interrupt.
The phenomenon where the overall system
performance is severely hindered by excessive amounts of processing
time spent handling interrupts is called an interrupt
storm.
Types of Interrupts
Level-triggered
A level-triggered interrupt is a class of interrupts where the presence of an unserviced interrupt is indicated by a high level (1), or low level (0), of the interrupt request line. A device wishing to signal an interrupt drives the line to its active level, and then holds it at that level until serviced. It ceases asserting the line when the CPU commands it to or otherwise handles the condition that caused it to signal the interrupt.Typically, the processor samples the interrupt
input at predefined times during each bus cycle such as state T2
for the Z80
microprocessor. If the interrupt isn't active when the processor
samples it, the CPU doesn't see it. One possible use for this type
of interrupt is to minimize spurious signals from a noisy interrupt
line: a spurious pulse will often be so short that it is not
noticed.
Multiple devices may share a level-triggered
interrupt line if they are designed to. The interrupt line must
have a pull-down or pull-up resistor so that when not actively
driven it settles to its inactive state. Devices actively assert
the line to indicate an outstanding interrupt, but let the line
float (do not actively drive it) when not signalling an interrupt.
The line is then in its asserted state when any (one or more than
one) of the sharing devices is signalling an outstanding
interrupt.
This class of interrupts is favored by some
because of a convenient behavior when the line is shared. Upon
detecting assertion of the interrupt line, the CPU must search
through the devices sharing it until one requiring service is
detected. After servicing this device, the CPU may recheck the
interrupt line status to determine whether any other devices also
need service. If the line is now deserted, the CPU avoids checking
the remaining devices on the line. Since some devices interrupt
more frequently than others, and other device interrupts are
particularly expensive, a careful ordering of device checks is
employed to increase efficiency.
There are also serious problems with sharing
level-triggered interrupts. As long as any device on the line has
an outstanding request for service the line remains asserted, so it
is not possible to detect a change in the status of any other
device. Deferring servicing a low-priority device is not an option,
because this would prevent detection of service requests from
higher-priority devices. If there is a device on the line that the
CPU does not know how to service, then any interrupt from that
device permanently blocks all interrupts from the other
devices.
The original
PCI standard mandated shareable level-triggered interrupts. The
rationale for this was the efficiency gain discussed above. (Newer
versions of PCI allow, and PCI Express
requires, the use of message-signalled
interrupts.)
Edge-triggered
An edge-triggered interrupt is a class of interrupts that are signalled by a level transition on the interrupt line, either a falling edge (1 to 0) or a rising edge (0 to 1). A device wishing to signal an interrupt drives a pulse onto the line and then releases the line to its quiescent state. If the pulse is too short to be detected by polled I/O then special hardware may be required to detect the edge.Multiple devices may share an edge-triggered
interrupt line if they are designed to. The interrupt line must
have a pull-down or pull-up resistor so that when not actively
driven it settles to one particular state. Devices signal an
interrupt by briefly driving the line to its non-default state, and
let the line float (do not actively drive it) when not signalling
an interrupt. This type of connection is also referred to as
open
collector. The line then carries all the pulses generated by
all the devices. However, interrupt pulses from different devices
may merge if they occur close in time. To avoid losing interrupts
the CPU must trigger on the trailing edge of the pulse (e.g., the
rising edge if the line is pulled up and driven low). After
detecting an interrupt the CPU must check all the devices for
service requirements.
Edge-triggered interrupts do not suffer the
problems that level-triggered interrupts have with sharing. Service
of a low-priority device can be postponed arbitrarily, and
interrupts will continue to be received from the high-priority
devices that are being serviced. If there is a device that the CPU
does not know how to service, it may cause a spurious interrupt, or
even periodic spurious interrupts, but it does not interfere with
the interrupt signalling of the other devices. However, it is
fairly easy for an edge triggered interrupt to be missed - for
example if interrupts have to be masked for a period - and unless
there is some type of hardware latch that records the event it is
impossible to recover. Such problems caused many "lockups" in early
computer hardware because the processor didn't know it was expected
to do something. More modern hardware often has one or more
interrupt status registers that latch the interrupt requests; well
written edge-driven interrupt software often checks such registers
to ensure events are not missed.
The elderly
ISA bus uses edge-triggered interrupts, but does not mandate
that devices be able to share them. The parallel
port also uses edge-triggered interrupts. Many older devices
assume that they have exclusive use of their interrupt line, making
it electrically unsafe to share them. However, ISA motherboards
include pull-up resistors on the IRQ lines, so well-behaved devices
share ISA interrupts just fine.
Hybrid
Some systems use a hybrid of level-triggered and edge-triggered signalling. The hardware not only looks for an edge, but it also verifies that the interrupt signal stays active for a certain period of time.A common use of a hybrid interrupt is for the NMI
(non-maskable interrupt) input. Because NMIs generally signal major
– or even catastrophic – system events, a good implementation of
this signal tries to ensure that the interrupt is valid by
verifying that it remains active for a period of time. This 2-step
approach helps to eliminate false interrupts from affecting the
system.
Message-signalled
A message-signalled interrupt does not use a physical interrupt line. Instead, a device signals its request for service by sending a short message over some communications medium, typically a computer bus. The message might be of a type reserved for interrupts, or it might be of some pre-existing type such as a memory write.Message-signalled interrupts behave very much
like edge-triggered interrupts, in that the interrupt is a
momentary signal rather than a continuous condition.
Interrupt-handling software treats the two in much the same manner.
Typically, multiple pending message-signalled interrupts with the
same message (the same virtual interrupt line) are allowed to
merge, just as closely-spaced edge-triggered interrupts can
merge.
Message-signalled interrupt vectors can be
shared, to the extent that the underlying communication medium can
be shared. No additional effort is required.
Because the identity of the interrupt is
indicated by a pattern of data bits, not requiring a separate
physical conductor, many more distinct interrupts can be
efficiently handled. This reduces the need for sharing. Interrupt
messages can also be passed over a serial bus, not requiring any
additional lines.
PCI Express,
a serial computer bus, uses message-signalled interrupts
exclusively.
Difficulty with sharing interrupt lines
Multiple devices sharing an interrupt line (of any triggering style) all act as spurious interrupt sources with respect to each other. With many devices on one line the workload in servicing interrupts grows as the square of the number of devices. It is therefore preferred to spread devices evenly across the available interrupt lines. Shortage of interrupt lines is a problem in older system designs where the interrupt lines are distinct physical conductors. Message-signalled interrupts, where the interrupt line is virtual, are favoured in new system architectures (such as PCI Express) and relieve this problem to a considerable extent.Some devices with a badly-designed programming
interface provide no way to determine whether they have requested
service. They may lock up or otherwise misbehave if serviced when
they do not want it. Such devices cannot tolerate spurious
interrupts, and so also cannot tolerate sharing an interrupt line.
ISA cards, due to often cheap design and construction, are
notorious for this problem. Such devices are becoming much rarer,
as hardware logic becomes cheaper and new system architectures
mandate shareable interrupts.
Typical uses
Typical uses of interrupts include the following: system timers, disks I/O, power-off signals, and traps. Other interrupts exist to transfer data bytes using UARTs or Ethernet; sense key-presses; control motors; or anything else the equipment must do.A classic system timer
interrupt interrupts periodically from a counter or the
power-line. The interrupt handler counts the interrupts to keep
time. The timer interrupt may also be used by the OS's task
scheduler to reschedule the priorities of running processes.
Counters are popular, but some older computers used the power line
frequency instead, because power companies in most Western
countries control the power-line frequency with a very accurate
atomic
clock.
A disk interrupt signals the completion of a data
transfer from or to the disk peripheral. A process waiting to read
or write a file starts up again.
A power-off interrupt predicts or requests a loss
of power. It allows the computer equipment to perform an orderly
shutdown.
Interrupts are also used in typeahead features for
buffering events like keystrokes.
See also
External links
References
interruption in Czech: Přerušení
interruption in German: Interrupt
interruption in Spanish: Interrupción
interruption in Persian: وقفه
interruption in French: Interruption
(informatique)
interruption in Korean: 인터럽트
interruption in Indonesian: Interupsi (perangkat
keras)
interruption in Italian: Interrupt
interruption in Hebrew: פסיקה (מחשב)
interruption in Lithuanian: Pertraukimas
interruption in Malayalam: ഇന്ററപ്റ്റ്
interruption in Dutch: Interrupt
interruption in Japanese: 割り込み
interruption in Polish: Przerwanie
interruption in Portuguese: Interrupção de
hardware
interruption in Russian: Прерывание
interruption in Slovenian: Prekinitev
interruption in Finnish: Keskeytyssignaali
interruption in Swedish: Avbrott
(mikroprocessor)
interruption in Turkish: Kesme
interruption in Chinese: 中斷
Synonyms, Antonyms and Related Words
abeyance, arrest, arrestation, arrestment, blockage, blocking, breach, break, caesura, cease, cease-fire, ceasing, cessation, check, clearance, clogging, closing up, closure, coffee break, cold
storage, constriction, cramp, day off, delay, detainment, detention, discontinuity, disruption, distance between,
disturbance,
doldrums, dormancy, double space,
downtime, drop, em space, en space, encroachment, entrance, entrenchment, fissure, fixation, foot-dragging,
freeboard, gap, hair space, half space, half
time, half-time intermission, hampering, hesitation, hiatus, hindering, hindrance, holdback, holdup, holiday, impediment, impingement, imposition, impropriety, inappropriateness,
inauspiciousness,
inconvenience,
incursion, inexpedience, infelicity, infiltration, influx, infringement, inhibition, injection, inopportuneness,
inopportunity,
inroad, insinuation, intempestivity, interference, interim, interjection, interloping, interlude, intermediate space,
intermezzo, intermission, intermittence, interposition, interposure, interregnum, interspace, interstice, interval, intervention, intrusion, invasion, irrelevance, irruption, jump, lacuna, lapse, latency, lateness, layoff, leap, leeway, let, letup, lull, margin, negativism, nuisance value,
obstruction,
obstructionism,
obtrusion, occlusion, off-time, opposition, pause, plateau, point of repose,
prematurity,
quiescence, quiescency, quiet spell,
recess, relief, remission, rent, repression, resistance, respite, rest, resting point, restraint, restriction, retardation, retardment, rift, room, rupture, setback, single space, space, space between, split, squeeze, stand-down, stay, stop, stopping, stranglehold, stricture, suppression, surcease, suspension, time interval,
time off, time out, trespass, trespassing, truce, unfavorableness,
unfitness, unfittingness, unfortunateness,
unlawful entry, unpropitiousness,
unripeness, unseasonableness,
unsuitability,
untimeliness,
vacation, wrongness