Da im Leerlauf Tasks im Allgemeinen verwendet werden, um CPU-Zeit sicher zu verbrauchen, die von anderer Software nicht benötigt wird, was würde passieren, wenn es keine Leerlaufaufgabe gäbe? Würde das RTOS nur eines automatisch erstellen? Was für einen anderen Zweck haben Leerlaufaufgaben zusätzlich zum Zeitaufwand?Leerlaufzeit in RTOS
Antwort
was würde passieren, wenn es keine Leerlaufaufgabe gäbe? Würde das RTOS nur eines automatisch erstellen?
Ich bezweifle, dass es ein RTOS gibt, das das tun würde. Wenn es keine Leerlaufaufgabe gäbe, wäre die Liste der ausführbaren Aufgaben leer und der Scheduler würde wahrscheinlich abstürzen. Im Allgemeinen besteht der wichtigste Grund für die Existenz des Leerlauf-Threads darin, die Liste der ausführbaren Tasks "niemals leer" zu machen. Dies vereinfacht den Code des Schedulers.
Welchen anderen Zweck erfüllen auch Leerlaufaufgaben außer Zeit?
In einigen Systemen kann Leerlauf Task einige Aktivitäten mit niedriger Priorität ausführen (z. B. einige Garbage Collection). Es kann auch den Kern in den Energiesparmodus schalten, insbesondere bei eingebetteten Geräten. In diesem Fall, wenn die Leerlauf-Task ausgeführt wird, bedeutet dies, dass nichts mehr zu tun ist, so dass der Kern gestoppt werden kann und auf das nächste Ereignis warten kann (Hardware-Interrupt oder Timeout), ohne zu viel Energie zu verbrauchen. Wenn das nächste Ereignis eintrifft, wird der Kern von der Hardware geweckt und das Ereignis wird verarbeitet. Entweder wird ein "normaler" Thread gestartet, oder - wenn noch nichts mehr zu tun ist - wird der Thread im Leerlauf fortgesetzt und wechselt wieder in den Energiesparmodus.
Wenn die CPU-Uhr läuft, müssen Anweisungen ausgeführt werden; Wenn es keine Leerlaufaufgabe gab, ist das Betriebssystem defekt. Die Leerlaufschleife ist ein wesentlicher Teil des RTOS, keine Benutzeraufgabe, daher muss das RTOS nicht "automatisch eine erstellen".
Eine Benutzeraufgabe mit niedriger Priorität, die niemals nachgibt, verhindert, dass die Leerlaufschleife ausgeführt wird. was nicht unbedingt eine gute Sache ist. Solch eine Aufgabe ist nicht dasselbe wie die Leerlaufschleife. Zum einen würden alle CPU-Nutzungstools, die das RTOS unterstützt, jederzeit eine 100% ige Auslastung melden, wenn eine solche Task - die Ausführung der Leerlaufschleife nicht eingeschlossen - CPU-Auslastung ist, da die CPU immer bereit ist, auf ein Interrupt-Ereignis im Leerlauf zu reagieren. Die Schleife führt niemals dazu, dass eine fertige Aufgabe verzögert wird.
Die Leerlaufaufgabe, oder "Leerlaufschleife" ist in der Regel genau das, und leere Schleife, auf die der Programmzähler gesetzt ist, wenn nichts anderes zu tun ist. In einigen Architekturen kann die Schleife einen "Warte-für-Interrupt" -Befehl enthalten, der die Kernausführung stoppt (stoppt das Takten des Kerns), um den Stromverbrauch zu reduzieren. Da jeder Kontextwechsel notwendigerweise einen Interrupt erfordert, kann der Prozessor, wenn WFI unterstützt wird, einfach in dieser Schleife stoppen.
Einige RTOS unterstützen Benutzer-Hooks für die Leerlaufschleife; Run-to-Completion-Funktionen mit niedriger Priorität, die im Leerlaufkontext im Hintergrund arbeiten können.
Welchen anderen Zweck erfüllen Leerlaufaufgaben außer Zeit?
Am häufigsten hat es zwei Dinge:
1. Garbage (Ressource) Sammlung oder Reinigungs
2. Schritte einleiten Stromverbrauch
- 1. Anzahl der Aufgaben in RTOS
- 2. Ausführungszeit vs Leerlaufzeit in PHP
- 3. Integrity RTOS \ Multi Compiler
- 4. RTOS STM32F4 Entdeckung
- 5. Erhalten Leerlaufzeit der Maschine
- 6. Leerlaufzeit einer Anwendung
- 7. Leerlaufzeit verfügbarer EBS-Volumes
- 8. Count-Leerlaufzeit im Browser
- 9. VB Detect Leerlaufzeit
- 10. Preemptive Aufgabe auf nicht RTOS
- 11. Der Keil RTX-RTOS-Threadstapelgröße
- 12. Beenden eines Threads CMSIS-RTOS
- 13. Verwendung der Warteschlange in Free RTOS
- 14. Open-Source-RTOS-Code-Links
- 15. Mauszeiger nach einer Leerlaufzeit ausblenden
- 16. Einfügen einer Leerlaufzeit beim Schleifen
- 17. eps-open-rtos: sdk_wifi_station_get_connect_status gibt 255 zurück
- 18. Automatische Abmeldung von Linux unabhängig von Leerlaufzeit
- 19. Mit welchen Parametern werden RTOS verglichen?
- 20. Welche Linux RTOS-Lösung sollte ich wählen?
- 21. Ist eine Unterbrechung zwischen Task in Non RTOS-System möglich
- 22. Ich möchte über Backup-Richtlinie in jedem RTOS
- 23. Ist es sinnvoll, ein RTOS und zyklisches Executive zu mischen?
- 24. Passagier langsam beim Start und nach einigen Sekunden Leerlaufzeit
- 25. Verwenden mit w-Befehl show Benutzern mit der größten Leerlaufzeit
- 26. Maximale Cloud-Computing-Nutzung - Zahlen Sie für Computing, nicht Leerlaufzeit
- 27. Firebase onChildAdded() Event nicht ausgelöst manchmal/nach Leerlaufzeit
- 28. Echtzeit-Empfang von UDP-Paketen mit QNX RTOS
- 29. Stop Akka Schauspieler auf WebSocket trennen oder nach Leerlaufzeit
- 30. Beispielprojekt für Keil RTOS-Thread-Verwendung auf ARM STM32F4xx
Vielen Dank für die ausführliche Antwort zu reduzieren! – guddu