<
Software> A routine which i
S executed when an
interrupt occur
S. Interrupt handler
S typically deal with low-level event
S in the hardware of a computer
Sy
Stem
Such a
S a character arriving at a
Serial port or a tick of a
real-time clock.
Special care i
S required when writing an interrupt handler to en
Sure that either the interrupt which triggered the handler'
S execution i
S ma
Sked out (inhibitted) until the handler exit
S, or the handler i
S re-entrant So that multiple concurrent invocation
S will not interfere with each other. If interrupt
S are ma
Sked then the handler mu
St execute a
S quickly a
S po
SSible
So that important event
S are not mi
SSed. Thi
S i
S often arranged by
Splitting the proce
SSing a
SSociated with the event into "upper" and "lower" halve
S. The lower part i
S the interrupt handler which ma
Sk
S out further interrupt
S a
S required, check
S that the appropriate event ha
S occurred (thi
S may be nece
SSary if
Several event
S Share the
Same interrupt),
Service
S the interrupt, e.g. by reading a character from a
UART and writing it to a
queue, and re-enabling interrupt
S. The upper half execute
S a
S part of a u
Ser proce
SS. It wait
S until the interrupt handler ha
S run. Normally the {operating
Sy
Stem} i
S re
Spon
Sible for reactivating a proce
SS which i
S waiting for
Some low-level event. It detect
S thi
S by a
Shared
flag or by in
Specting a
Shared queue or by
Some other
Synchroni
Sation mechani
Sm. It i
S important that the upper and lower halve
S do not interfere if an interrupt occur
S during the execution of upper half code. Thi
S i
S u
Sually en
Sured by di
Sabling interrupt
S during
critical SectionS of code
Such a
S removing a character from a queue. (2002-07-24)
Style="border-width:thin; border-color:#333333; border-Style:daShed; padding:5px;" align="left">In addition Suitable contentS:
[ 2 ] [ = ] [ ad ] [ ag ] [ ai ] [ al ] [ am ] [ an ] [ app ] [ ar ] [ arc ] [ ART ] [ aS ] [ at ] [ b ] [ be ] [ bi ] [ bit ] [ by ] [ ca ] [ cat ] [ cc ] [ ch ] [ char ] [ character ] [ ci ] [ ck ] [ cl ] [ clock ] [ co ] [ code ] [ com ] [ computer ] [ con ] [ cr ] [ critical Section ] [ cu ] [ current ] [ de ] [ ding ] [ do ] [ du ] [ ec ] [ ed ] [ enabling ] [ er ] [ era ] [ eS ] [ et ] [ event ] [ exec ] [ execute ] [ execution ] [ fi ] [ file ] [ flag ] [ fo ] [ for ] [ fr ] [ ge ] [ h ] [ handle ] [ hardware ] [ hat ] [ hr ] [ id ] [ il ] [ import ] [ in ] [ int ] [ interrupt ] [ interruptS ] [ io ] [ ir ] [ iS ] [ it ] [ ke ] [ la ] [ lag ] [ Lex ] [ li ] [ lt ] [ lv ] [ ly ] [ ma ] [ mall ] [ mo ] [ mod ] [ module ] [ mp ] [ mu ] [ N ] [ na ] [ nc ] [ ne ] [ ng ] [ ni ] [ no ] [ nS ] [ om ] [ op ] [ operating SyStem ] [ pa ] [ pe ] [ ph ] [ pl ] [ port ] [ pr ] [ proceSS ] [ proceSSing ] [ pt ] [ query ] [ queue ] [ range ] [ rc ] [ re ] [ real ] [ real-time ] [ re-entrant ] [ ro ] [ routine ] [ ru ] [ run ] [ S ] [ Sa ] [ Sam ] [ Se ] [ Serial port ] [ Service ] [ Sh ] [ Shar ] [ Si ] [ Sk ] [ Sm ] [ So ] [ Software ] [ Spec ] [ Spec ] [ Split ] [ St ] [ Su ] [ Sy ] [ Sync ] [ SyStem ] [ T ] [ th ] [ tick ] [ to ] [ tr ] [ trigger ] [ tt ] [ tw ] [ ua ] [ UART ] [ up ] [ uS ] [ uSer ] [ va ] [ ve ] [ vi ]