Interrupt-Priorität des System-Tick-Timers und blockierte Interrupts
Angenommen, wir haben ein Betriebssystem, das auf einer CPU läuft, die vollständig mit ihren Anforderungen kompatibel ist. Dieses Betriebssystem ist tickgesteuert. Der System-Tick-Interrupt kommt vom externen Timer (periodischer Modus), der zur Vereinfachung mit einem CPU-IRQn-Pin verbunden ist.
IRQ-Pins sind nach Interrupt-Priorität sortiert. IRQ0 hat die höchste Priorität und IRQn hat die niedrigste Priorität. Priorität hat es mindestens aus zwei Gründen. Die erste ist natürlich, wenn zwei Interrupts zusammenkommen, eine mit höherer Priorität wird ausgewählt. Der zweite Grund ist folgender: Wenn ein Interrupt auftritt, werden weitere Interrupts von der Hardware deaktiviert. Wenn Interrupts in ISR aktiviert sind (mögliche Verschachtelungsinterrupts), können nur Interrupts mit höherer Priorität auftreten. Und ich habe einige Fragen dazu.
Meine erste Frage ist wahrscheinlich sehr einfach und ich kann sie selbst beantworten (vielleicht), aber ich möchte eine verlässliche Antwort lesen.
- Wie wählt man die Timer-Tick-Priorität? Ist es die niedrigste Interrupt-Priorität im System? *
Hier ist die zweite Frage.
- Was passiert, wenn der Timer-Tick-Interrupt genau dann auftritt, wenn die CPU einen oder mehrere weitere Interrupts bedient und weitere Interrupts deaktiviert sind?
Und hier ist ein Zusatz von mir. Wenn die obige Situation (in der zweiten Frage) auftreten kann, besteht die Möglichkeit, dass das System-Tick verloren geht. Kann es große Probleme geben?
* Wenn die Timer-Tick-Priorität nicht die niedrigste Interrupt-Priorität im System war, kann es zu einer Situation kommen, in der sich die CPU in ISR mit niedrigerer Priorität als der System-Tick-Interrupt befindet und weitere Interrupts aktiviert, und der Benutzerprozess, den wir für die potenzielle Planung benötigen, irgendwo gespeichert ist auf dem Stapel, wo wir es in der System-Tick-Routine nicht finden können.
Ich weiß, dass alles systemabhängig sein kann, aber ich interessiere mich für typische Lösungen, die dieser Situation ähneln.
Entschuldigung für mein Englisch.
0 Antworten auf die Frage
Verwandte Probleme
-
3
Suche nach einem kostenlosen Bootloader
-
4
Auf welcher Linux-Distribution basiert Google Chrome OS?
-
6
Verursacht das Öffnen vieler Registerkarten in Google Chrome ein Leistungsproblem?
-
4
Kann ein 32-Bit-Betriebssystem in einem 64-Bit-Prozessor ausgeführt werden?
-
7
Andere Vorteile eines 64-Bit-Betriebssystems neben der Speichererweiterung?
-
2
Was hat BeOS den heutigen Nutzern zu bieten?
-
5
Was ist der Unterschied zwischen 64-Bit- und 32-Bit-Betriebssystemen?
-
2
VPC-Image zum nativen Booten
-
7
Ist es eine gute Idee, ein Betriebssystem sofort nach der Veröffentlichung zu installieren?
-
2
Neuinstallation des iPhone-Betriebssystems