Rechtzeitigkeit - Technische Universität Dresden
Rechtzeitigkeit - Technische Universität Dresden
Rechtzeitigkeit - Technische Universität Dresden
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