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
"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
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.
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.