Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Hardware » Nested Interrupt

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.01.2007, 14:16 Uhr
~Gast100
Gast


Hallo
Kann mir jemand erklären, was ein Nested Interrupt ist?

Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.01.2007, 16:36 Uhr
ao

(Operator)


"nested" heißt "geschachtelt"

Wenn während der Ausführung einer Interrupt-Routine eine zweite Interrupt-Anforderung kommt, gibts zwei Möglichkeiten:

1. Die laufende ISR läuft ungestört zuende, und erst danach wird die zweite Anforderung bedient ("serialized interrupts"). Vorteil: Einfach und sicher zu implementieren, es gibt nur wenig Unwägbarkeiten, weil es nie mehr als einen laufenden Interrupt-Kontext gibt. Nachteil: Unter Umständen muss ein wichtiger Interrupt warten, bis ein weniger wichtiger behandelt wurde.

2. Die zweite Anforderung unterbricht die erste Routine und wird vorrangig bedient ("nested interrupts"). Nach Ende der zweiten ISR wird die erste an der Stelle wieder aufgenommen, an der sie verdrängt wurde. Vorteil: Wichtige Interrupts können weniger wichtige verdrängen und werden mit sehr kurzer Latenz bedient. Nachteil: Das System wird erheblich komplizierter, weil mehrere Kontexte gleichzeitig offen sein können. Sowas muss sehr sorgfältig entworfen werden, weil es fehleranfällig ist.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.01.2007, 21:58 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von ao:

2. Die zweite Anforderung unterbricht die erste Routine und wird vorrangig bedient ("nested interrupts"). Nach Ende der zweiten ISR wird die erste an der Stelle wieder aufgenommen, an der sie verdrängt wurde. Vorteil: Wichtige Interrupts können weniger wichtige verdrängen und werden mit sehr kurzer Latenz bedient. Nachteil: Das System wird erheblich komplizierter, weil mehrere Kontexte gleichzeitig offen sein können. Sowas muss sehr sorgfältig entworfen werden, weil es fehleranfällig ist.

ao

u.A gibts da bei "falschen" interrupt-routinen schnell deadlocks oder noch viel schlimmer - lifelocks. Darum muss man da extremst aufpassen damit man nicht irgendwo festhängt, oder irgendwelche semaphoren und co verdreht

z.b:

-> interrupt1
-1 semaphore(lock)
-> interrupt2
-2 semaphore(lock)
-> tot

bei serialized interrupts wär das dann z.b so:

-> interrupt1
-1 semaphore(lock)
-> interrupt
-1 tu was
-1 semaphore(unlock)
-2 semaphore(lock)
-1 tu was
-1 semaphore(unlock)
-> lebt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Hardware ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: