70 likes | 209 Views
Synchrone Programmierung Übersicht. Das zeitliche Verhalten periodisch auszuführender Aktionen wird vor der Ausführung geplant : Zeitraster T synchronisiert die Aktionen, die nur zu ganzzahligen Vielfachen von T gestartet werden können. Reihenfolge (Priorität) ist fest vorgegeben.
E N D
Synchrone ProgrammierungÜbersicht • Das zeitliche Verhalten periodisch auszuführender Aktionen wird vor der Ausführung geplant: • Zeitraster T synchronisiert die Aktionen, die nur zu ganzzahligen Vielfachen von T gestartet werden können. • Reihenfolge (Priorität) ist fest vorgegeben. • Periodenzeiten werden eingehalten, wenn die Summe der Ausführungszeiten der einzelnen Aufgaben kleiner T ist und jede längere Periodenzeit ein ganzzahliges Vielfaches der nächst kürzeren ist. • Vorteile der synchronen Programmierung: • besitzt ein festes vorhersagbares Zeitverhalten, d.h. bei richtiger Planung können Rechtzeitigkeit und Gleichzeitigkeit garantiert werden • Erlaubt einfache Analyse und einfachen Test • Sehr gut anwendbar bei zyklischen Abläufen
Synchrone ProgrammierungÜbung 1 Aufgaben zur Steuerung eines fahrerlosen Transportsystems: - Task 1 übernimmt Kameradatenverarbeitung mit Periode T - Task 2 steuert den Motor mit Periode 2T 1) Wie ist die Variable t im Flussdiagramm zu programmieren, damit der u.g. zeitliche Ablauf gegeben ist? 2) Wie sieht Flussdiagramm und zeitlicher Ablauf aus, wenn Task 1 mit der Periode 2T und Task 2 mit der Periode 3T aufgerufen werden? 3) Kann es zu einer Verletzung der Einhaltung der Periodenzeiten kommen, obwohl die Summe der Ausführungszeiten <= T ist? Periodische Unterbrechung im Abstand T t = Kameradaten-verarbeitung aufrufen t == ? Motorsteuerung nein ja Kameradaten-verarbeitung Motorsteuerung aufrufen ruhend t = Ende der Unterbrechung 2T T 3T 4T 5T 6T
Synchrone ProgrammierungFormen der Ablaufsteuerung • Zyklische Ablaufsteuerung: ist einfachste Form und benutzt keinerlei Zeitgeber oder Unterbrechungen • Periodendauer ist nur abh. von den Ausführungszeiten der einzelnen Aktivitäten • Für feste Dauern muss eine Warteschleife (z.B. nach Aktivität E) eingesetzt werden, in der der Prozessor eine definierte Menge von Taktzyklen verbringt • Periodendauer schwankt trotzdem, z.B. wegen Cache Miss beim ersten Durchlauf oder auch bei bedingten Aktivitäten (siehe C/D) • Weiterer Nachteil ist, dass der Prozessor immer aktiv ist Aktivität A Aktivität B C/D Aktivität C Aktivität D Aktivität E
Synchrone ProgrammierungFormen der Ablaufsteuerung • Zeitgesteuerte Ablaufsteuerung: In jedem Schleifendurchlauf wird die Zeit (z.B. Auslesen eines Zählers, einer Uhr..) geprüft • Für synchrone Programmierung sehr gut geeignet, da der Zeitpunkt für die Aktionen genau gemessen und die Periodendauer damit eingehalten wird. • Schwankungen ergeben sich nur Verletzung der Bedinungen der synchronen Programmierung (s.v.) • Nachteil ist auch hier, dass der Prozessor immer aktiv ist ja Zeit A? Aktivität A nein ja Zeit B? Aktivität B nein ja Zeit C? Aktivität C nein
Synchrone ProgrammierungFormen der Ablaufsteuerung • Unterbrechungsgesteuerte Ablaufsteuerung: Prozessor ist nicht immer in einer Schleife aktiv wie bei den o.g., sondern im Ruhezustand • Unterbrechung ist entweder ein periodisches Zeitereignis (von einem Zeitgeber) oder ein aperiodisches Ereignis Unterbrechung Aktivität D Aktivität C Aktivität B Aktivität A Ende der Unterbrechung • sowohl für synchrone als auch für asynchrone Programmierung geeignet. • Bei der synchronen Progr. ist die Reihenfolge fest im Programm vorgegeben. • Bei der asynchronen Progr. wird die Reihenfolge durch Prioritätenvergabe oder ähnliches zur Laufzeit bestimmt (Scheduling)