19.11.2014 Aufrufe

Rechtzeitigkeit - Technische Universität Dresden

Rechtzeitigkeit - Technische Universität Dresden

Rechtzeitigkeit - Technische Universität Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Echtzeitverarbeitung<br />

VL Prozessrechen- und -leittechnik<br />

Professur für Prozessleittechnik


Echtzeitverarbeitung Übersicht<br />

• Definitionen und Kriterien<br />

– <strong>Rechtzeitigkeit</strong><br />

– Gleichzeitigkeit<br />

– (zeitliche) Determiniertheit<br />

• Mittel der Echtzeitprogrammierung<br />

– Scheduling<br />

– Synchronisierung<br />

• Echtzeitbetriebssysteme<br />

– Übersicht<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 2


Einige Definitionen<br />

• Echtzeitfähigkeit = Eigenschaft eines Rechnersystems,<br />

Rechenprozesse ständig ablaufbereit zu halten, derart, dass<br />

innerhalb einer vorgegebene Zeitspanne auf Ereignisse im Ablauf<br />

eines technischen Prozesses reagiert werden kann (Lauber &<br />

Göhner 1999).<br />

• Echtzeitbetrieb = Betrieb eines Rechensystems, bei dem<br />

Programme zur Verarbeitung anfallender Daten ständig<br />

betriebsbereit sind derart, dass die Verarbeitungsergebnisse<br />

innerhalb einer vorgegebenen Zeitspanne verfügbar sind (DIN<br />

44300)<br />

• Echtzeit in Betriebssystemen: Die Fähigkeit des<br />

Betriebssystems innerhalb einer bestimmten, begrenzten<br />

Antwortzeit einen bestimmten Dienst zu gewährleisten (POSIX<br />

1003.1)<br />

• Von Echtzeitsystemen (englisch real-time system) spricht man,<br />

wenn ein System ein Ergebnis innerhalb eines vorher fest<br />

definierten Zeitintervalles garantiert berechnet, also bevor eine<br />

bestimmte Zeitschranke erreicht ist. Die Größe des Zeitintervalles<br />

spielt dabei keine Rolle: Während bei einigen Aufgaben<br />

(Motorsteuerung) eine Sekunde bereits zu lang sein kann, reichen<br />

für andere Probleme Stunden oder sogar Tage. Ein Echtzeitsystem<br />

muss also nicht nur ein Berechnungsergebnis mit dem richtigen<br />

Wert, sondern dasselbe auch noch rechtzeitig liefern. Andernfalls<br />

hat das System versagt. (WikiPedia)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 3


Zusammenfassung<br />

• Ständige Ablaufbereitschaft von mehreren<br />

Prozessen.<br />

• Rechtzeitige Reaktion auf Ereignisse<br />

innerhalb einer definierten Zeitspanne.<br />

• Logische und zeitliche Randbedingungen<br />

müssen erfüllt sein.<br />

• Eine obere Schranke für Reaktions- und<br />

Berechnungszeit muss vorhersagbar sein.<br />

• Es gibt Mechanismen zum zeitlich<br />

determinierten Management des Zugriffs auf<br />

Ressourcen, die sich mehrere Prozesse teilen.<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 4


Echtzeitrechensystemen<br />

• Bildschirm-Dialogsysteme: Menschen geben Daten über<br />

entsprechende Eingabemedien (Tastatur, Maus) in den Computer.<br />

– Beispiele: Platzbuchungssysteme bei Luftfahrtgesellschaften,<br />

Kontoführungssysteme bei Banken, Lagerhaltungssysteme, ...<br />

– Antwortzeiten: wenige Sekunden.<br />

• Automatisierungssysteme: Der Ablauf der Automatisierungsprogramme<br />

richtet sich nach den Vorgängen im technischen Prozess.<br />

– Beispiele: Kraftfahrzeugelektronik, Motorsteuerung, Robotik,<br />

Anlagenautomatisierung, ...<br />

– Antwortzeiten: Mikrosekunden (KFZ, Motor) bis Sekunden<br />

(Anlagen).<br />

• Multimodale Dialogsysteme: Multimodale Dialogsysteme<br />

reagieren auf das Verhalten des Benutzers.<br />

– Beispiele: VR-Cave, Fly-by-wire<br />

– Antwortzeiten: Je nach Modalität (Sinneskanal) unter einer<br />

Mikrosekunde (physische Eindrücke, Haptik, Force Feedback) bis<br />

hin zu einigen Millisekunden (fließende optischer Eindrücke)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 5


Determiniertheit<br />

• Ein System heißt determiniert, wenn sich für jeden<br />

möglichen Zustand und für jede Menge an<br />

Eingangsinformation eine eindeutige Menge von<br />

Ausgabeinformation und ein eindeutiger nächster<br />

Zustand bestimmen lassen.<br />

• Voraussetzungen: Endliche Menge von<br />

Systemzuständen<br />

– Zeitliche Diskretisierung (Taktrate)<br />

– Informationsdiskretisierung<br />

• Zeitlich determinierte Systeme: Die Antwortzeit<br />

für jede Menge von Ausgabeinformationen ist<br />

bekannt.<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 6


<strong>Rechtzeitigkeit</strong><br />

• <strong>Rechtzeitigkeit</strong> bezieht sich auf die zeitlichen Aspekte<br />

der Interaktion mit dem technischen Prozess.<br />

– Eingabedaten müssen rechtzeitig abgerufen<br />

werden.<br />

– Ausgabedaten müssen rechtzeitig verfügbar sein.<br />

– Bedingungen werden zumeist von technischem<br />

Prozess diktiert<br />

• Absolutzeitbedingung:<br />

– Bedingung bezieht sich auf die Uhrzeit<br />

– Signal muss um 11.45 gegeben werden<br />

• Relativzeitbedingung:<br />

– Bedingung bezieht sich auf den Zeitpunkt eines<br />

Ereignisses / Zustands<br />

– Abschalten 10 Sekunden nach Überschreitung<br />

eines Grenzwerts<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 7


Zeitliche Bedingungen<br />

• zu einem festen Zeitpunkt (at)<br />

• in einem Zeitintervall (between)<br />

Zeit<br />

• bis zu einem spätesten Zeitpunkt (before,<br />

deadline)<br />

Zeit<br />

• zu einem frühestem Zeitpunkt (after)<br />

Zeit<br />

Zeit<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 8


Beispiele<br />

Zu einem festem<br />

Zeitpunkt<br />

In einem<br />

Zeitintervall<br />

bis zu einem<br />

spätesten<br />

Zeitpunkt<br />

zu einem<br />

frühestem<br />

Zeitpunkt<br />

Relativzeitbedingung<br />

Absolutzeitbedingung<br />

Analyse von Stoffen<br />

in der Chemie<br />

Abtasten von<br />

Regelgrößen<br />

t i<br />

=∆T*i+ε<br />

Erfassen von<br />

Datentelegrammen<br />

Folgesteuerung bei<br />

einem<br />

Chargenprozess<br />

Zündzeitpunkt Motor<br />

Messwertüberwachung<br />

auf<br />

gleitende Grenzen<br />

Erfassen von<br />

Stückgutkennungen<br />

Erfassung von<br />

Signalen einer<br />

Lichtschranke<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 9


Voraussetzungen für<br />

<strong>Rechtzeitigkeit</strong><br />

• Hinreichende Verarbeitungsgeschwindigkeit<br />

• Zeitliche Vorhersagbarkeit<br />

• Harte Echtzeitbedingungen (Hard Real-time)<br />

– Schaden bei verletzer Zeitbedingung<br />

• Feste Echtzeitbedingungen (Firm Real-time)<br />

– Aktion kann bei verletzter Zeitbedingung<br />

abgebrochen werden, e.g. „Verfallsdatum von<br />

Positionsinformation“ in einem bewegten<br />

System<br />

• Weiche Echtzeitbedingungen (Soft Real-time)<br />

– Zeitbedingung sind Richtwerte, e.g. Messen<br />

einer Temperaturanzeige (+- 10%), „Ruckeln“<br />

bei Videotelefonie<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 10


Time Utility Function<br />

• Wert einer Aktion in Abhängigkeit von der<br />

Zeit<br />

• Basis für Scheduling-Algorithmen<br />

soft<br />

firm<br />

hard<br />

Wert<br />

Wert<br />

Wert<br />

Zeit<br />

Zeit<br />

Zeit<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 11


Gleichzeitigkeit<br />

Aufgabe<br />

1<br />

.<br />

.<br />

.<br />

Prozessor<br />

1<br />

.<br />

.<br />

.<br />

• Mehrere (n) Aufgaben sind<br />

gleichzeitig durchzuführen.<br />

• Lösungsansätze<br />

– Parallelverarbeitung in<br />

n Prozessoren.<br />

– Quasi-Parallelverarbeitung<br />

in m < n<br />

Prozessoren<br />

– Quasi-Parallelverarbeitung<br />

mit einem<br />

Prozessor.<br />

• QP: Näherungsweise<br />

Erfüllung möglich,<br />

wenn die Vorgänge in<br />

der Umwelt im<br />

Vergleich zum Rechner<br />

langsam ablaufen.<br />

Aufgabe<br />

n<br />

Aufgabe<br />

1<br />

Aufgabe<br />

n<br />

Prozessor<br />

n<br />

Prozessor<br />

1<br />

Prozessor<br />

m<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 12<br />

.<br />

.<br />

.<br />

Aufgabe<br />

1<br />

.<br />

.<br />

.<br />

Aufgabe<br />

n<br />

Echtzeit<br />

Scheduler<br />

Echtzeit<br />

Scheduler<br />

.<br />

.<br />

.<br />

.<br />

Prozessor .<br />

1.<br />

m < n


Verfügbarkeit<br />

• Zusicherung der zeitlichen Eigenschaften über<br />

lange Zeiträume (247)<br />

– Keine Unterbrechung des Betriebs, z.B. für<br />

Reorganisationsphasen (Datenbanken,<br />

Speicherbereinigung)<br />

• Lösungsansätze<br />

– Reorganisationsfreie Algorithmen<br />

• Deterministische dynamische<br />

Speicherverwaltung wie in C++ realisiert<br />

(new,delete)<br />

– Reorganisation in kleinen Schritten<br />

• Incremental Garbage Collection in Real-time<br />

Java (PERC, JamaicaVM)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 13


Echtzeitprogrammierung<br />

• Wie können Forderungen nach <strong>Rechtzeitigkeit</strong>,<br />

Gleichzeitigkeit und Determiniertheit der<br />

Programmabläufe in bestimmten Schranken erfüllt<br />

werden?<br />

• Synchrone Programmierung (Planung)<br />

– Planung des zeitlichen Ablaufs vor der<br />

Ausführung<br />

– Beispiel: Terminkalender<br />

– Zeitgesteuerte Echtzeitsysteme<br />

• Asynchrone Programmierung (Organisation)<br />

– Organisation des zeitlichen Ablaufs während<br />

der Ausführung<br />

– Beispiel: Wartezimmer beim Arzt<br />

TU <strong>Dresden</strong>, – Ereignisgesteuerte 10.06.09 Urbas, PRLT (c) 2008-2009 Echtzeitsysteme Folie 14


Zeitgesteuerte Echtzeit<br />

• Alle Aktivitäten werden zu bestimmten Zeitpunkten<br />

angestoßen – die Zustandsgrößen des Prozesses<br />

werden zu definierten Zeitpunkten ausgelesen, alle<br />

Teilprogramme werden periodisch ausgeführt.<br />

• Planung:<br />

<br />

<br />

<br />

Die zyklisch auszuführenden Teilprogramme<br />

werden mit einem Zeitraster synchronisiert<br />

(daher der Name)<br />

Das Zeitraster wird mit einer Echtzeituhr, einem<br />

Uhrimpuls-Geber, gewonnen. Der in bestimmten<br />

Zeitabständen generierte Uhrimpuls sorgt für den<br />

Aufruf eines Teilprogramms.<br />

Die Reihenfolge des Ablaufs der Teilprogramme<br />

wird fest vorgegeben Fixed Time Schedule.<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 15


Beispiel Fixed Time Schedule<br />

(FTS)<br />

• 3 Aufgaben (Tasks) mit<br />

unterschiedlicher Zykluszeit<br />

(aus Lauber & Göhner, S. 191-195)<br />

– Task1: Alle 1 Schritte<br />

– Task2: Alle 2 Schritte<br />

– Task3: Alle 5 Schritte<br />

Initialisierung<br />

Periodische<br />

Unterbrechung<br />

t=0<br />

t++<br />

Task1<br />

mod(t,2)==0<br />

3<br />

Task2<br />

2.5<br />

2<br />

1.5<br />

mod(t,5)==0<br />

1<br />

0.5<br />

Task3<br />

0<br />

-0.5<br />

-1<br />

0 1 2 3 4 5 6 7 8 9 10<br />

Ende<br />

Unterbrechung<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 16


Analyse<br />

3<br />

2.5<br />

2<br />

1.5<br />

1<br />

1T<br />

2T<br />

~5T<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

0 1 2 3 4 5 6 7 8 9 10<br />

• <strong>Rechtzeitigkeit</strong> (absolute Zeitbedingungen):<br />

Periodenzeiten werden für Task1 und Task2 exakt<br />

eingehalten, für Task3 nicht. Allgemein:<br />

– FTS hält Periodenzeiten exakt ein, wenn<br />

• Summe Ausführungszeiten < T<br />

• Jede längere Periodenzeiten ist ganzzahliges<br />

Vielfaches der nächst kürzeren Periodenzeit<br />

• <strong>Rechtzeitigkeit</strong> (relative Zeitbedingungen):<br />

Reaktionszeitverzögerung bezüglich relativer<br />

Zeitbedingung (Ereignisse) im schlimmsten Fall<br />

entsprechend Periodenzeit der Task<br />

• Gleichzeitigkeit: Annähernd gleichzeitige<br />

Ausführung der Teilaufgaben, Versatz bestimmbar<br />

• Determiniertheit: zeitlich determiniert – zu jedem<br />

Zeitpunkt ist bekannt, bis wann eine Reaktion auf den<br />

aktuellen Zustand erfolgt<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 17


Diskussion FTS<br />

• Vorteile<br />

– Festes, vorhersagbares Zeitverhalten<br />

– Einfache Analyse und einfacher Test des<br />

Verhaltens<br />

– Sehr gut geeignet für zyklische Abläufe<br />

– Bei richtiger Planung können <strong>Rechtzeitigkeit</strong> und<br />

Gleichzeitigkeit garantiert werden wichtig für<br />

sicherheitsrelevante Aufgaben<br />

• Nachteile<br />

– Geringe Flexibilität gegenüber Änderungen der<br />

Aufgabenstellung<br />

– Reaktionszeit auf aperiodische Ereignisse im worst<br />

case entsprechend Periodendauer der Task<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 18


Ereignisgesteuerte Echtzeit<br />

• Planung des Ablaufs der Aktionen während der<br />

Programmausführung durch Organisationsprogramm<br />

(Echtzeitbetriebssystem)<br />

• Aufgaben des Organisationsprogramms:<br />

– Überwachen der Ereignisse, die eine Aktion durch<br />

das System erfordern<br />

– Informationen über einzuhaltende Zeitbedingungen<br />

(Zeitschranken, Prioritäten) verwalten<br />

– Ablaufreihenfolge derart ermitteln, dass<br />

Zeitbedingungen nach Möglichkeit eingehalten werden<br />

– Teilprogramme gemäß Ablaufreihenfolge aktivieren<br />

• Flexiblere Struktur als FTS, die auch aperiodische,<br />

asynchron zu einem Zeitgeber auftretende Ereignisse<br />

behandeln kann „asynchrone Programmierung“<br />

• Erfüllung der o.g Aufgaben: Echtzeitscheduling (Realtime<br />

Scheduling)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 19


Scheduling Strategien<br />

• Statisch – Dynamisch:<br />

– Wann geschieht die Zuordnung der Tasks an den Prozessor?<br />

• Preemptiv – Nicht-preemptiv:<br />

– preemption = Vorkaufsrecht, können laufende Tasks verdrängt<br />

werden?<br />

• Statische Prioritäten, dynamische Prioritäten, Nicht prioritätsbasiert:<br />

– Welche Informationen werden beim dynamischen Scheduling für<br />

die Planung herangezogen?<br />

Scheduling Verfahren<br />

statisch<br />

Dynamisches Scheduling<br />

Nicht-preemptiv<br />

preemptiv<br />

Nicht-preemptiv<br />

preemptiv<br />

Statische<br />

Dynamische Statische<br />

Dynamische<br />

Prioritäten<br />

Prioritäten Prioritäten<br />

Prioritäten<br />

Nicht<br />

Nicht<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, Prioritätsbasiert<br />

PRLT (c) 2008-2009 Prioritätsbasiert Folie 20


Einschub Rechenprozess (Task)<br />

• „Ein Rechenprozess ist der zeitliche Vorgang<br />

der Abarbeitung eines sequentiellen<br />

Programms auf einem Rechner. Ein<br />

Rechenprozess existiert nicht nur während<br />

der Abarbeitung der Befehle sondern auch<br />

während geplanter oder erzwungener<br />

Wartezeiten. Er beginnt mit dem Eintrag in<br />

eine Liste des Echtzeitbetriebssystems<br />

(Organisationsprogramms) und endet mit<br />

dem Löschen aus dieser Liste“ (Lauber &<br />

Göhner 1999, S. 200).<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 21


Zustände von Tasks<br />

• Ruhend (dormant): ist<br />

vorhanden aber nicht<br />

ablaufbereit, da Voraussetzungen<br />

(noch) nicht erfüllt<br />

sind<br />

• Ablaufwillig (runnable): ist<br />

bereit, Voraussetzungen sind<br />

erfüllt, lediglich Zuteilung des<br />

Prozessors steht noch aus<br />

• Laufend (running): wird auf<br />

Prozessor ausgeführt<br />

• Blockiert (suspended,<br />

blocked): wartet auf das<br />

Eintreffen eines Ereignisses<br />

oder Freiwerden eines<br />

Betriebsmittels<br />

Einrichten<br />

Entfernen<br />

ruhend ablaufwillig laufend<br />

blockiert<br />

(Wörn & Brinkschulte 2005, S. 354)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 22


Zeitparameter von Tasks<br />

• a i<br />

Ankunftszeit (arrival<br />

time)<br />

• r i<br />

Anforderungszeit<br />

(request time)<br />

• s i<br />

Startzeit (start time)<br />

• c i<br />

Beendigungszeit<br />

(completion time)<br />

• d i<br />

Zeitschranke (deadline)<br />

• p i<br />

Periode (period)<br />

• e i<br />

Ausführungszeit<br />

(execution time)<br />

• er i<br />

Restausführungszeit<br />

(remaining ex.)<br />

• l i<br />

Spielraum (laxity)<br />

• j i<br />

Reaktionszeit (reaction<br />

time, release jitter)<br />

(Wörn & Brinkschulte 2005, S. 354)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 23


Scheduling Verfahren<br />

• FIFO-Scheduling (FIFO)<br />

– Wer zuerst kommt, erhält zuerst den Prozessor<br />

• Fixed-Priority-Non-Preemptive-Scheduling (FPN)<br />

– Kommt eine Task mit höherer Priorität als die<br />

gerade ausgeführte in den Zustand ablaufwillig,<br />

erhält die Task mit der höheren Priorität den<br />

Prozessor, wenn die laufende Task nicht mehr<br />

ablaufwillig oder blockiert ist<br />

• Fixed-Priority-Preemptive-Scheduling (FPP)<br />

– Kommt eine Task mit höherer Priorität als die<br />

gerade ausgeführte in den Zustand ablaufwillig,<br />

wird die laufende unterbrochen und die Task mit<br />

der höheren Priorität erhält den Prozessor sofort<br />

zugeteilt<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 24


Rate-Monotonic-Scheduling<br />

• Priorität ~ 1 / p i<br />

• Vorabüberprüfung der Einhaltung aller<br />

Zeitschranken möglich, wenn für alle Tasks<br />

gilt:<br />

– preemptives Scheduling<br />

– Periodendauer p i<br />

konstant<br />

– Zeitschranke d i<br />

= p i<br />

– Ausführungszeit e i<br />

konstant und bekannt<br />

– Tasks blockieren sich nicht gegenseitig<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 25


Weitere bekannte Verfahren<br />

• Earliest Deadline First (EDF)<br />

– Bei der Ankunfts- und Abschlussereignissen<br />

erhält der Task die höchste Priorität, der am<br />

frühesten fertig sein muss<br />

• Least Slacktime First (LSF)<br />

– In regelmäßigen Abständen wird die<br />

Restlaufzeit aller Tasks überprüft. Die Task mit<br />

der geringsten Reserve bekommt die höchste<br />

Priorität<br />

• Bandwidth Preserving Server<br />

• ...<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 26


Zyklisches Aufgabenmodelll<br />

<br />

jede Aufgabe (Job) Ji eines Programms Ti<br />

besitzt:<br />

Ausführungszeit ei<br />

Periode Pi<br />

relative Zeitschranke (Deadline) Di (oft gleich<br />

Pi)<br />

Phase Φi (erstes Auslösen der Aufgabe Ji,1)<br />

Auslastung (Utilization) ui = ei / Pi<br />

Gesamtauslastung U = Σ ui<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 27


Merkmale EDF (1)<br />

• EDF ist ein dynamisches, präemptives<br />

Scheduling - Verfahren<br />

• Zu jedem Entscheidungszeitpunkt:<br />

– Diejenige Aufgabe J i<br />

, die als erste<br />

abgeschlossen sein muss, erhält den Prozessor<br />

– (Rest)ausführungszeiten der Aufgaben werden<br />

nicht betrachtet<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 28


Entscheidungszeitpunkte<br />

• Entscheidungszeitpunkte: Zeitpunkte, zu<br />

denen über die Zuteilung von Jobs an den<br />

Prozessor entschieden wird:<br />

• das Bereitwerden neuer Aufgaben (z.B. zu<br />

Beginn der Periode)<br />

• das Beenden aktiver Aufgaben<br />

• EDF garantiert die Einhaltung aller Fristen in<br />

Echtzeitsystemen, wenn gilt:<br />

U


EDF – Beispiel (1)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(18)<br />

J1(18)<br />

J2(10)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 30


EDF – Beispiel (2)<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(18)<br />

J1(18)<br />

J2(10)<br />

J1(18)<br />

J2(10)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 31<br />

J3(17)


EDF – Beispiel (3)<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(18)<br />

J1(18)<br />

J2(10)<br />

J1(18)<br />

J2(10)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 32<br />

J3(17)<br />

J1(18)<br />

J3(17)


EDF – Beispiel (4)<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(18)<br />

J1(18)<br />

J2(10)<br />

J1(18)<br />

J2(10)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 33<br />

J3(17)<br />

J1(18)<br />

J3(17)<br />

J1(18)


Least Slack Time<br />

• LST ist ein dynamisches, präemptives<br />

Scheduling-Verfahren<br />

• zum Entscheidungszeitpunkt:<br />

– Aufgabe Ji , die sich am wenigsten<br />

herauszögern lässt, erhält den Prozessor<br />

• maßgebend: Schlupfzeit (Slacktime) einer<br />

Aufgabe<br />

• Schlupfzeit = Zeitpunkt der Deadline –<br />

frühester Abschluss der Aufgabe<br />

• frühester Abschluss =<br />

Entscheidungszeitpunkt + verbleibende<br />

Ausführungszeit<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 34


LST – Einführung (2)<br />

<br />

LST erkennt Fristverletzungen eher als EDF<br />

<br />

nicht anwendbar wenn Ausführungszeiten der Aufgaben<br />

nicht bekannt sind<br />

<br />

LST garantiert die Einhaltung aller Fristen in<br />

Echtzeitsystemen, wenn gilt: U


LST – Beispiel (1)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(10)<br />

J1(10)<br />

J2(2)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 36


LST – Beispiel (2)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(10)<br />

J1(10)<br />

J2(2)<br />

J1(8)<br />

J2(2)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 37<br />

J3(11)


LST – Beispiel (3)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(10)<br />

J1(10)<br />

J2(2)<br />

J1(8)<br />

J2(2)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 38<br />

J3(11)<br />

J1(4)<br />

J3(7)


LST – Beispiel (4)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(10)<br />

J1(10)<br />

J2(2)<br />

J1(8)<br />

J2(2)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 39<br />

J3(11)<br />

J1(4)<br />

J3(7)<br />

J3(1)


LST – Beispiel (5)<br />

3 sporadische Aufgaben mit folgenden Parametern:<br />

Ji<br />

Φi<br />

ei<br />

Di<br />

J1<br />

0<br />

8<br />

18<br />

J2<br />

2<br />

6<br />

10<br />

J3<br />

4<br />

2<br />

17<br />

“ “… Entscheidungszeitpunkt<br />

J1<br />

J2<br />

J3<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19<br />

20<br />

J1(10)<br />

J1(10)<br />

J2(2)<br />

J1(8)<br />

J2(2)<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 40<br />

J3(11)<br />

J1(4)<br />

J3(7)<br />

J3(1)


Schlussfolgerungen (1)<br />

<br />

beide Verfahren arbeiten präemptiv auf<br />

Einprozessorsystemen optimal<br />

<br />

kann ein beliebiges Schedulingverfahren<br />

eine ausführbare Schedule erzeugen,<br />

können es EDF und LST auch<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 41


Schlussfolgerungen (2)<br />

<br />

Probleme durch:<br />

<br />

<br />

<br />

<br />

<br />

endliche Zeiten beim Kontextwechsel<br />

begrenzte Anzahl von Ausführungsebenen<br />

Unterbrechungszeitpunkte nicht äquidistant im<br />

realen System<br />

Mehrprozessorsysteme<br />

nicht präemptive Ausführung<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 42


Diskussion zeitgesteuert vs.<br />

ereignisgesteuert<br />

• Zeitgesteuerte Echtzeit<br />

– Vorteile:<br />

• Gut geeignet für zyklische Abarbeitung<br />

• Einfach zu analysieren und zu testen häufiges<br />

Programmierparadigma für Speicherprogrammierbare Steuerung<br />

– Nachteile:<br />

• Aufwändige Implementierung der Behandlung asynchroner<br />

Ereignisse<br />

• Änderung der gesamten Programmstruktur bei Änderung der<br />

Aufgabenstellung<br />

• Ereignisgesteuerte Echtzeit<br />

– Vorteile:<br />

• Gut geeignet für die Abarbeitung von nicht vorhersagbaren<br />

Ereignissen<br />

• Hohe Flexibilität, einfache Erweiterbarkeit, da Organisation während<br />

des Laufens<br />

– Nachteile:<br />

• Nicht deterministische zeitliche Abfolge von Teilprozessen für<br />

sicherheitskritische Automatisierungsaufgaben nur bedingt geeignet<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 43


Synchronisation von<br />

nebenläufigen Prozessen


Synchronisation<br />

• Problem: Abhängigkeiten zwischen Tasks durch<br />

gemeinsam genutzte Betriebsmittel<br />

– Daten: lesender/schreibender Zugriff<br />

– Geräte: widersprüchliche Kommandos<br />

– Programme: z.B. Gerätetreiber<br />

• Lösungsansätze<br />

– Sperrsynchronisation: wechselseitiger<br />

Ausschluss (mutual Exclude, Mutex) – zu jedem<br />

Zeitpunkt greift immer nur ein Task auf<br />

Betriebsmittel zu<br />

– Reihenfolgensynchronisation: Kooperation,<br />

Reihenfolge der Zugriffe ist exakt definiert<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 45


Semaphore<br />

P<br />

Zähler--<br />

V<br />

Zähler++<br />

nein<br />

Zähler


Zustände Beispiel 1<br />

Programmablauf<br />

? Initialisierung<br />

T1 P(S1)<br />

Sched:<br />

T2 P(S1)<br />

Sched:<br />

T1 Nutzung<br />

Sched:<br />

T1 V(S1)<br />

Sched:<br />

T2 Nutzung<br />

…<br />

T2 V(S1)<br />

Semaphore<br />

S1 Taskqueue<br />

? -> 1<br />

1 -> 0<br />

0 -> -1 T2<br />

-1 T2<br />

-1 -> 0 T2<br />

0<br />

0 -> 1<br />

Prozesszustände<br />

T1<br />

T2<br />

ablaufwillig ablaufwillig<br />

laufend ablaufwillig<br />

-> ablaufwillig laufend<br />

ablaufwillig -> blockiert<br />

laufend blockiert<br />

laufend blockiert<br />

laufend blockiert<br />

laufend -> ablaufwillig<br />

ablaufwillig laufend<br />

ablaufwillig laufend<br />

ablaufwillig laufend<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 47


Verklemmung<br />

• Deadlock (Blockierung, Deadly Embrace)<br />

– Mehrere Tasks warten auf die Freigabe von<br />

Betriebsmitteln, die sich gegenseitig<br />

blockieren<br />

– Ursachen: Mutexe werden nicht in der<br />

gleichen Reihenfolge belegt, Mutexe werden<br />

nicht freigegeben<br />

– Abhilfe Monitor<br />

• Livelocks (Starvation, Aushungern) Eine Task<br />

wird durch „Konspiration“ anderer Tasks ständig<br />

an der Ausführung gehindert<br />

– Ursache: Prioritäreninversion<br />

– Abhilfe: Prioritätenvererbung<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 48


Mailbox/Fifo/Message Queue<br />

• Aufbau:<br />

– Nachrichten, die in Form einer verketteten Liste<br />

– Ablegen von Daten von Prozessen<br />

– Erhalt der Daten in Message Queue auch nach<br />

Beendigung Erzeuger<br />

– Priorisierung der Nachrichten (Priorität und<br />

Nachricht) mgl.<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 49


Mailbox/Fifo/Message Queue<br />

• Operationen:<br />

– Nachrichten einfügen (blockiert, wenn voll)<br />

• Ablegen von Daten von Prozessen zur Kommunikation<br />

• Erhalt der Daten in Message Queue auch nach<br />

Beendigung Erzeuger<br />

• Priorisierung der Nachrichten (Priorität und Nachricht)<br />

mgl.<br />

– Nachrichten abholen (blockiert, wenn leer)<br />

• erste Nachricht abholen<br />

• erste Nachricht bestimmter Priorität; erste Nachricht<br />

die nicht bestimmte Priorität hat<br />

– Statusabfragen<br />

• Informationen, z.B. Größe<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 50


Weitere Synchronisationsmittel<br />

• RW-Locks – Mit RW-Locks (Read-Write-Locks)<br />

– viele Lesen; nur einer Schreiben, z.B. bei<br />

gemeinsamer Speicher<br />

• Barrier<br />

– Punkt als Barriere, die erst überwunden wird,<br />

wenn eine bestimmte Menge an Threads an<br />

Barriere angelangt; vgl. Überwinden einer<br />

hohen Mauer<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 51


Echtzeitbetriebssysteme<br />

Produkt QNX POSIX.4 RT-Linux VxWorks OS-9 CMX Windows<br />

CE<br />

Hersteller QNX Posix GPL Wind River Microware CMS Microsoft<br />

Software<br />

Systems<br />

Ltd.<br />

Systems<br />

Typ DS, EBS Standard für<br />

EBS, BA<br />

BA EBS EBS MEBS EBS<br />

Zielsystem IA32 IA32, IA64,<br />

PowerPC<br />

IA32,<br />

PowerPC,<br />

ARM<br />

IA32,<br />

PowerPC,<br />

680XX, div.<br />

µC<br />

IA32,<br />

PoerPC,<br />

680XX<br />

div. µC<br />

IA32,<br />

PowerPC,<br />

MIPS, ARM<br />

Sprachen C, C++ C, C++, C, C++, Java C, C++, Java C, C++, Java C C, C++, Java<br />

Java, Ada<br />

Dateisystem<br />

Unix, Unix Unix, Unix, Windows - Windows<br />

Windows<br />

Windows Windows<br />

Netzwerk TCP/IP TCP/IP, TCP/IP, TCP/IP TCP/IP - TCP/IP<br />

UDP UDP<br />

Feldbus - - - CAN, CAN, - -<br />

ProfiBus ProfiBus,<br />

Interbus S<br />

Scheduling FPP, FPN,<br />

Timeslice,<br />

FIFO<br />

FPP, FPN,<br />

Timeslice,<br />

Benutzerdefiniert<br />

FPP, FPN,<br />

Timeslice<br />

FPP, FPN,<br />

Timeslice<br />

FPP, FPN,<br />

Timeslice<br />

FPP, FPN,<br />

Timeslice<br />

FPP, FPN<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 52


Literatur<br />

• Echtzeitsysteme in der Automatisierungstechnik<br />

– Lauber, R. & Göhner, P. (1999, 3.Aufl.)<br />

Prozessautomatisierung 1. Berlin: Springer<br />

– Wörn, H. & Brinkschulte, U. (2005)<br />

Echtzeitsysteme. Berlin: Springer<br />

• Programmierung von Echtzeitsystemen<br />

– Barr, M. (1999) Programming Embedded Systems<br />

in C and C++. Sebastopol: O'Reilly<br />

– Douglass, B.P. (2003) Real-Time Design Patterns.<br />

Robust Scalable Architecture for Real-Time<br />

Systems. Boston: Addison Wesley.<br />

TU <strong>Dresden</strong>, 10.06.09 Urbas, PRLT (c) 2008-2009 Folie 53

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!