<< 5.4 Kontext-Wechsel | Index | 6.1 Uhren-Hardware >>


5.5 Realzeit-Scheduling

  • Ein Echtzeitbetrieb (Real-time system, RTS) ist ein Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig derart betreibsbereit sind, dass die Verarbeitungsergebnisse in einer vorgegebenen Zeitspanne verfügbar sind.
    • Wenn Ergebnisse nicht fristgerecht geliefert werden, ist das ein Fehlerzustand.
  • Anwendungsgebiete
    • Überwachung und Steuerung technischer Prozesse
    • Erfassen von Messdaten
    • Multimedia-Bereich: Audio- und Videoströme
  • Unterteilung in:
    • harte Zeitbedingungen (Einhaltung der Zeiten umbedingt erforderlich)
    • weiche Zeitbedingungen (gelegentliche Überschreitung ist tolerabel)
  • Benötigt:
    • Feinen Zeitgeber
    • Geeignetes Scheduling
    • Schnelle Kontextwechsel

System-Modell

  • Seien m periodische Prozesse gegeben, die mit der Periode Pi auftreten und die Laufzeit Ci haben, für i = 1, ..., m.
  • Die Prozesse können geschedulet werden, falls Σi=1..m (Ci/Pi) ≤ 1

Rate-Monotonic Scheduling (RMS?)

  • Statisches Scheduling (feste Prioritäten) für periodische Prozesse
    • Setzt noch einiges voraus, z. B. dass Prozesse unabhängig sind und Bearbeitungszeit Ci immer gleich ist, u. a.
    • Optimales statisches Verfahren
    • Funktioniert bis zu einer CPU-Auslastung von ca. 70%
    • Dafür sehr einfach
  • Verfahren:
    • Jedem Prozess wird seine Frequenz als Priorität zugeordnet
    • Der rechenbereite Prozess mit der höchsten Priorität wird immer zuerst ausgeführt, unterbricht dabei auch laufende Prozesse mit niederer Priorität

Earliest Deadline First (EDF?)

  • Dynamisches Scheduling (wechselnde Prioritäten)
    • Ausführungszeiten der Prozesse müssen nicht immer konstant sein
    • Prozesse müssen nicht periodisch sein
    • Optimales dynamisches Verfahren.
    • Funktioniert bis zu einer CPU-Auslastung von 100% (ideal)
    • Etwas höherer Verwaltungsaufwand
  • Verfahren:
    • Rechenbereite Prozesse melden ihre Deadline an den Scheduler
    • Dieser sortiert die Prozessliste nach der Deadline
    • Prozess mit der kürzesten Deadline wird zuerst ausgeführt
    • Wird neuer Prozess mit kürzerer Deadline rechenbereit, so wird aktueller unterbrochen und der neue Prozess bekommt die CPU-Zuteilung.

Nach oben

Zuletzt geändert am 01 März 2005 22:49 Uhr von chrschn