Was macht VxWorks so deterministisch und schnell?
Arbeitete ich auf VxWorks 5.5 langer Zeit mal wieder und es war die beste Erfahrung in der Arbeit auf der weltweit besten Echtzeit-OS. Seit dem habe ich nie die chance hatte, daran zu arbeiten, wieder. Aber, eine Frage, die hält, knallen auf mich, was macht, ist so schnell und deterministisch?
Ich nicht in der Lage zu finden, viele Referenzen für diese Frage über Google.
So, ich habe gerade versucht zu überlegen, was macht eine regelmäßige OS-nicht-deterministisch:
-
Speicher-Allokation/de-Allokation:- Wiki sagt RTOS verwenden Feste Größe der Blöcke, so dass diese Blöcke können direkt indiziert, aber dadurch wird die interne Fragmentierung, und ich bin sicher, dies ist etwas, was überhaupt nicht wünschenswert ist, auf mission critical " - Systeme, bei denen der Speicher ist bereits begrenzt.
-
Paging/Segmentierung:- Seine Art von verlinkten Punkt 1
-
Interrupt-Handhabung:- Nicht sicher, wie VxWorks implementiert, da dies ist etwas, VxWorks Griffe sehr gut
-
Kontext-switching:- ich glaube, in VxWorks 5.5, die alle Prozesse verwendet, um die Ausführung im kernel-Adressraum, also Kontext-switching verwendet werden, um umfassen nur sparen register Werte, und nichts über das PCB(Prozess control block), aber noch bin ich mir nicht 100% sicher, dass
-
Prozess-scheduling-algorithmen:- Wenn Windows implementiert präemptives scheduling (priority-round-robin), dann wird der scheduling-Prozess so schnell wie in VxWorks? I dont think so. Also, wie funktioniert VxWorks Griff scheduling?
Bitte korrigieren Sie mein Verständnis, wo es erforderlich ist.
- Irgendwelche Abnehmer für Sie ??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube das folgende Konto für viele der Unterschied:
Kein Paging/Swapping
Einen deterministischen RTOS einfach nicht swap-Speicher-Seiten auf die Festplatte. Dies würde töten des Determinismus, da Sie jederzeit haben könnte, um swap-Speicher ein oder aus.
vxWorks erfordert, dass Ihre Anwendung passen vollständig im RAM
Keine Prozesse
In vxWorks 5.5, es gibt Aufgaben, aber kein Prozess wie Windows oder Linux. Die Aufgaben sind eher an den threads und den Kontextwechsel ist eine relativ kostengünstige Betrieb. In Linux - /Windows -, switching-Prozess ist Recht teuer.
Beachten Sie, dass in vxWorks 6.x, ein Prozess-Modell eingeführt wurde, erhöht ein gewisser Aufwand, aber Sie beziehen sich vor allem auf den übergang vom Benutzermodus in den Administratormodus. Die task-switching-time ist nicht unbedingt direkt betroffen von dem neuen Modell.
Fixed Priority
In vxWorks werden die task-Prioritäten werden vom Entwickler festgelegt und sind im ganzen system. Die vorrangige Aufgabe zu einem gegebenen Zeitpunkt wird der sein, der läuft. So können Sie Ihre design-system, um sicherzustellen, dass die Aufgaben mit dem engsten Termin wird immer ausgeführt, bevor andere.
In Linux/Windows im Allgemeinen, während Sie Kontrolle über die Priorität der Prozesse, die der scheduler schließlich wollen niedrigere Priorität Prozesse ausgeführt werden, auch wenn höhere Priorität Prozess noch aktiv sind.