Was passiert mit dem Interrupt-Handler?

Ich konnte selbst in einigen gut geschriebenen Kernelbüchern keine richtige Antwort auf die folgenden Fragen finden:

Sie sagen, dass ein ISR nicht schlafen kann, weil es nicht möglich ist, einen ISR neu zu planen, da er mit keinem Prozess verbunden ist. Was passiert also, wenn ein Interrupt mit höherer Priorität den ausführenden Interrupt verhindert? Wird der unterbrochene ISR nicht erneut terminiert (ausgeführt)? wenn ja wie und wer wird das machen?

Oft werden wir Interrupts deaktivieren (z. B .: 1.In kritischem Bereich 2. Wenn ein schneller Interrupt ausgeführt wird, werden alle Interrupts im aktuellen Prozessor deaktiviert). Was passiert also mit den Interrupts, die auftreten, wenn Interrupts deaktiviert werden? sie werden einfach weggeworfen? oder wird irgendwo für eine spätere Ausführung gespeichert? wenn ja wo und wie?

Wenn ein ISR ausgeführt wird, wird der Interrupt in der aktuellen IRQ-Zeile deaktiviert, um ein erneutes Eintreten zu vermeiden (wodurch verhindert wird, dass ein anderer ISR in derselben Zeile ausgeführt wird). Aber warum? Was ist falsch, wenn ein ISR wiedereintritt?

* ISR = Interrupt Service Routine

* Sie = Autor des Buches

Antworten auf die Frage(4)

Ihre Antwort auf die Frage