Forum: Mikrocontroller und Digitale Elektronik Verständnisproblem bezüglich Echtetbetriebssystem


von Johannes H. (Gast)


Lesenswert?

Hallo Leute :)

Ich beschäftige mich derzeit mit Echtzeitbetriebssystemen und da 
schwirren paar Fragen in meinem Kopf, wo ich keine Antwort darauf 
gefunden habe und hoffe, dass Ihr mir da eventuell weiterhelfen könntet.

Meine Fragen wären:

1) Ich habe gelesen, dass Echtzeitbetriebssysteme zuverlässig und 
vorhersehbar sind. Die Zuverlässigkeit des Betriebssystems verstehe ich, 
jedoch kann ich mir unter Vorhersehbarkeit nichts vorstellen. Kann es 
sein, dass es irgendwas mit dem System Tick zu tun hat?

2) Lieg ich richtig wenn ich sage, dass ein Context Switch auch dann 
zwischen Tasks stattfindet, wenn der Sytem Tick erkennt, dass ein vorher 
suspendierter Task (z.B: die Delay Funktion des suspendierten Tasks ist 
zu ende gegangen) nun Anspruch auf die CPU hat? In dem Fall muss 
vorausgesetzt sein, dass der suspendierte Task eine höhere Priorität hat 
als der Task, der gerade läuft, oder? Und wenn der System Tick auf z.B 
5ms eingestellt ist, passiert bei so einem Fall der Context Switch erst 
nach verstreichen der 5ms Sekunden, oder?


Tut mir leid, es sind wahrscheinlich ziemlich peinliche Fragen aber die 
Antworten würden mir zum Verständnis von Echtzeitbetriebssystemen 
wirklich viel helfen.

Mit freundlichen Grüßen

von Pandur S. (jetztnicht)


Lesenswert?

"vorhersehbar" bedeutet in diesem Context, du kannst sicher sein, das 
das system innert .. auf ein Ereignis reagiert. diese Zeit muss nicht 
maximal kurz sein, nur eben "sicher".

In diesem Zusammenhang definiert man hard-realtime mit "ganz sicher", 
und soft-realtime mit "meistens"

Es gibt preemtive BS, die Schalten die Task neben den meldungsbasierten 
Kontextwechseln auch mit einem Timer.
Die anderen BS, die keinen timerbasierten Kontextwechsel haben, nennen 
sich kooperative Systeme. Bei denen muss der Programmierer in der 
Software sicherstellen, dass der Kontextwechsel haeufig genug geschehen 
kann.

: Bearbeitet durch User
von Ruediger A. (Firma: keine) (rac)


Lesenswert?

Ich widme dem Thema RTOS ein ganzes Kapitel in meinem Buch:

http://www.springer.com/de/book/9783658148492#otherversion=9783658148508

Ausserdem ist die Dokumentation von FreeRTOS (www.freertos.org) recht 
hilfreich auch für Einsteigerfragen.

von (prx) A. K. (prx)


Lesenswert?

Johannes H. schrieb:
> jedoch kann ich mir unter Vorhersehbarkeit nichts vorstellen.

Ein Kennzeichen von Echtzeitbetriebssystemen ist, dass für die 
Reaktionszeit auf Ereignisse ein klare Obergrenze existiert. Man muss 
sich darauf verlassen können, dass innerhalb von einer Zeit T reagiert 
werden kann.

> 2) Lieg ich richtig wenn ich sage, dass ein Context Switch auch dann
> zwischen Tasks stattfindet, wenn der Sytem Tick erkennt, dass ein vorher
> suspendierter Task (z.B: die Delay Funktion des suspendierten Tasks ist
> zu ende gegangen) nun Anspruch auf die CPU hat?

Ja.

von Pandur S. (jetztnicht)


Lesenswert?

Am besten du vergisst die Taskprioritaeten. Da kann man sich vertun, und 
auch vieles falsch machen. Denn es kann auch ein tiefpriorisierter Task 
einen Hoeherpriorisierten blockieren.
Am wenigsten Aerger macht round-robin, dh gleichpriorisiert, der Reihe 
nach.

Und Reaktionszeit ist nicht Taskwechselzeit, sondern wie lange es 
dauert, bis das System auf das Ereignis reagiert, dh etwas Passendes 
rauskommt. Dh ueblicherweise muss der Taskwechsel schneller sein.

Sinnvollerweise arbeitet man mit einem kooperativen system, bis sich die 
Probleme davon manifestieren, resp, man die nicht mehr beseitigen kann.

von Vancouver (Gast)


Lesenswert?

Vorhersehbarkeit im Kontext von RT-Systemen bedeutet, dass das System 
garantiert alle Tasks innerhalb der vorgesehenen Deadlines abarbeitet, 
sofern  das auf diesem System möglich ist. "Normale" Systeme ohne 
Echtzeitfähigkeit garantieren das nicht. Windows und Linux z.B. 
verschwinden manchmal für Millisekunden im Nirvana und  sind dann mit 
sich selbst beschäftigt. Kann sein, dass sie alles rechtzeitig fertig 
haben, muss aber nicht.

> ... es sind wahrscheinlich ziemlich peinliche Fragen ...


Keineswegs. Viele reden über Echtzeit ohne sich um diese Dinge Gedanken 
zu machen. Echtzeit bedeutet nicht so schnell wie möglich, sondern 
garantiert immer schnell genug.

von Strubi (Gast)


Lesenswert?

Vancouver schrieb:
> Vorhersehbarkeit im Kontext von RT-Systemen bedeutet, dass das
> System
> garantiert alle Tasks innerhalb der vorgesehenen Deadlines abarbeitet,
> sofern  das auf diesem System möglich ist. "Normale" Systeme ohne
> Echtzeitfähigkeit garantieren das nicht. Windows und Linux z.B.
> verschwinden manchmal für Millisekunden im Nirvana und  sind dann mit
> sich selbst beschäftigt. Kann sein, dass sie alles rechtzeitig fertig
> haben, muss aber nicht.
>

Naja, spätestens seit Xenomai und Linux Preempt von Molnar sind das 
keine Millisekunden mehr, die Antwortzeiten gehen schon mal Richtung 
100ns.
Wie's bei Windows aussieht, weiss ich nicht. Soll aber auch gehen.
Nachteil ist, dass man sich relativ detailliert mit dem RT-spezifischen 
Treibermodell beschäftigen muss.

von Peter II (Gast)


Lesenswert?

Strubi schrieb:
> Naja, spätestens seit Xenomai und Linux Preempt von Molnar sind das
> keine Millisekunden mehr, die Antwortzeiten gehen schon mal Richtung
> 100ns.

das muss die Hardware auch wollen. Normaler IntelPC könnte man seiner 
IME schon verhindern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.