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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes H. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.