26 Stimmen

Wie funktionieren Echtzeitbetriebssysteme?

Ich meine, wie und warum sind Echtzeit-Betriebssysteme in der Lage, Fristen einzuhalten, ohne sie jemals zu verpassen? Oder ist das nur ein Mythos (dass sie keine Fristen verpassen)? Wie unterscheiden sie sich von einem normalen Betriebssystem und was hindert ein normales Betriebssystem daran, ein RTOS zu sein?

1 Stimmen

Es ist auch wichtig, den Unterschied zwischen einem "weichen" Echtzeitsystem und einem "harten" Echtzeitsystem zu beachten.

0voto

JustJeff Punkte 12130

Sie garantieren nicht die Einhaltung von Fristen; was sie zu einem echten RTOS macht, ist die Möglichkeit, Fristüberschreitungen zu erkennen und zu bewältigen. Harte" RT-Systeme sind in der Regel solche, bei denen das Verpassen einer Frist katastrophale Folgen hat und eine Art von Abschaltung erforderlich ist, während ein "weiches" RT-System eines ist, bei dem eine Fortsetzung mit verminderter Funktionalität sinnvoll ist. In jedem Fall erlaubt ein RTOS, Reaktionen auf solche Überschreitungen zu definieren. Nicht-RT-Betriebssysteme erkennen nicht einmal Überschreitungen.

-1voto

Spence Punkte 27536

Im Grunde muss man jede "Aufgabe" im RTOS so kodieren, dass sie in einer endlichen Zeit beendet wird.

Außerdem würde Ihr Kernel jeder Aufgabe eine bestimmte Zeitspanne zuweisen, um zu gewährleisten, dass bestimmte Dinge zu bestimmten Zeiten geschehen.

Dies ist jedoch keine leichte Aufgabe. Stellen Sie sich Dinge wie virtuelle Funktionsaufrufe vor, in OO ist es sehr schwierig, diese Dinge zu bestimmen. Außerdem muss ein RTOS sorgfältig in Bezug auf die Priorität kodiert werden. Es kann erforderlich sein, dass eine Aufgabe mit hoher Priorität die CPU innerhalb von x Millisekunden erhält, was je nach der Funktionsweise Ihres Schedulers schwierig zu bewerkstelligen sein kann.

0 Stimmen

"Im Grunde muss man jede "Aufgabe" im RTOS so kodieren, dass sie in einer endlichen Zeit beendet wird" - dann sollte die Anwendung als Echtzeit bezeichnet werden und nicht das Betriebssystem.

0 Stimmen

Was passiert, wenn die Zeit für eine Aufgabe abgelaufen ist?

0 Stimmen

Wird die Aufgabe zwangsweise vorzeitig beendet und bei der nächsten Zeitscheibe neu gestartet. Ein gutes RTOS würde einen Fehler melden oder darauf hinweisen, dass dies geschehen ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X