Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich. 28. Oktober Lehrstuhl Informatik 4

Größe: px
Ab Seite anzeigen:

Download "Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich. 28. Oktober Lehrstuhl Informatik 4"

Transkript

1 Echtzeitsysteme Zeitliche Analyse von Echtzeitanwendungen Peter Ulbrich Lehrstuhl Informatik Oktober 2014 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 1 / 31

2 Gliederung 1 Übersicht 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 2 / 31

3 Fragestellungen 1 Übersicht T 1 ET T 2 T 3 t Häufigkeit BCET WCET Ausführungszeit Alle sprechen von der maximalen Ausführungszeit Worst Case Execution Time (WCET) e i (vgl. Folie III-2/28) Unabdingbares Maß für zulässigen Ablaufplan (vgl. Folie III-2/33) Tatsächliche Ausführungszeit bewegt sich zwischen: 1 bestmöglicher Ausführungszeit (Best Case Execution Time, BCET) 2 schlechtest möglicher Ausführungszeit (besagter WCET) c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 3 / 31

4 III-3 WCET Gliederung 2 Problemstellung 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 4 / 31

5 III-3 WCET 2 Problemstellung Warum ist es so schwierig, e zu bestimmen? Anders: Wovon hängt die maximale Ausführungszeit eigentlich ab? Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 5 / 31

6 III-3 WCET 2 Problemstellung Warum ist es so schwierig, e zu bestimmen? Anders: Wovon hängt die maximale Ausführungszeit eigentlich ab? Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; Programmiersprachenebene: Anzahl der Schleifendurchläufe hängt von der Größe des Feldes a[] ab Anzahl der Vertauschungen (swap) hängt vom Inhalt des Feldes ab exakte Vorhersage ist kaum möglich sowohl die Größe als auch der Inhalt des Felds kann zur Laufzeit variieren c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 5 / 31

7 III-3 WCET 2 Problemstellung Warum ist es so schwierig, e zu bestimmen? Anders: Wovon hängt die maximale Ausführungszeit eigentlich ab? Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; Programmiersprachenebene: Anzahl der Schleifendurchläufe hängt von der Größe des Feldes a[] ab Anzahl der Vertauschungen (swap) hängt vom Inhalt des Feldes ab exakte Vorhersage ist kaum möglich sowohl die Größe als auch der Inhalt des Felds kann zur Laufzeit variieren Die Maschinenprogrammebene liefert Dauer der Elementaroperationen: wie lange dauert ein ADD, ein LOAD,... ist prozessorabhängig und für moderne Prozessoren sehr schwierig Cache Liegt die Instruktion/das Datum im schnellen Cache? Pipeline Wie ist der Zustand der Pipeline an einer Instruktion? Out-of-Order-Execution, Branch-Prediction, Hyper-Threading,... c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 5 / 31

8 III-3 WCET Gliederung 3 Dynamische WCET-Analyse (Messbasiert) 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 6 / 31

9 III-3 WCET 3 Dynamische WCET-Analyse (Messbasiert) Messbasierte WCET-Analyse [2] Idee: der Prozessor selbst ist das präziseste Hardware-Modell Führe das Programm aus und beobachte die Ausführungszeit! c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 7 / 31

10 III-3 WCET 3 Dynamische WCET-Analyse (Messbasiert) Messbasierte WCET-Analyse [2] Idee: der Prozessor selbst ist das präziseste Hardware-Modell Führe das Programm aus und beobachte die Ausführungszeit! Es besteht Bedarf für messbasierte Methoden: gängige Praxis in der Industrie nicht alle Echtzeitsysteme benötigen eine sichere WCET z. B. Echtzeitsystem mit weichen Zeitschranken lassen sich leicht an neue Hardwareplattformen anpassen häufig ist kein geeignetes statisches Analysewerkzeug verfügbar geringer Aufwand für Annotationen verschafft leicht Orientierung über die tatsächliche Laufzeit sinnvolle Ergänzung zur statischen WCET-Analyse Validierung statisch bestimmter Werte Ausgangspunkt für die Verbesserung der statischen Analyse Allerdings sollte man nicht einfach drauf los messen z. B. immer Pfade vermessen (d. h. Ablauf und Zeit) auf einen definierten Startzustand achten c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 7 / 31

11 III-3 WCET 3 Dynamische WCET-Analyse (Messbasiert) Messbasierte WCET-Analyse [2] Häufigkeit BCET BOET WOET WCET Ausführungszeit Dynamische WCET-Analyse liefert Messwerte: 3 Bestmögliche beobachtete Ausführungszeit (Best Observed Execution Time, BOET) 4 Schlechtest mögliche beobachtete Ausführungszeit (Worst Observed Execution Time, WOET) c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 8 / 31

12 III-3 WCET 3 Dynamische WCET-Analyse (Messbasiert) Messbasierte WCET-Analyse [2] Häufigkeit BCET BOET WOET WCET Ausführungszeit Probleme messbasierter Ansätze - in der Praxis ist es unmöglich alle relevanten Pfade zu betrachten - gewählte Testdaten führen nicht unbedingt zum längsten Pfad - seltene Ausführungsszenarien werden nicht abgedeckt - abschnittsweise WCET-Messung globalen WCET - Wiederherstellung des Hardwarezustandes schwierig/unmöglich c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 9 / 31

13 III-3 WCET 3 Dynamische WCET-Analyse (Messbasiert) Messbasierte WCET-Analyse [2] Häufigkeit BCET BOET WOET WCET Ausführungszeit Probleme messbasierter Ansätze - in der Praxis ist es unmöglich alle relevanten Pfade zu betrachten - gewählte Testdaten führen nicht unbedingt zum längsten Pfad - seltene Ausführungsszenarien werden nicht abgedeckt - abschnittsweise WCET-Messung globalen WCET - Wiederherstellung des Hardwarezustandes schwierig/unmöglich messbasierte Ansätze unterschätzen die WCET meistens systematischere, messbasierte Analysetechniken sind vonnöten c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 9 / 31

14 III-3 WCET Gliederung 4 Statische WCET-Analyse 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 10 / 31

15 III-3 WCET 4 Statische WCET-Analyse Überblick: Statische WCET-Analyse Häufigkeit Lower Bound BCET BOET WOET WCET Upper Bound Ausführungszeit Bester Fall Schlechtester Fall Statische WCET-Analyse liefert Schranken: 5 Geschätzte untere Schranke (Lower Bound) 6 Geschätzte obere Schranke (Upper Bound) Die Analyse ist sicher (sound) falls Upper Bound WCET c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 11 / 31

16 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Problem: Den längsten Weg durch ein Programm finden Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 12 / 31

17 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Problem: Den längsten Weg durch ein Programm finden Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; betrachte Aufrufe: bubblesort(a, size) Anzahl von Durchläufen, Vergleichen und Vertauschungen (engl. Swap) a = {1, 2, size = 2 D = 1, V = 1, S = 0; a = {1, 3, 2, size = 3 D = 3, V = 3, S = 1; a = {3, 2, 1, size = 3 D = 3, V = 3, S = 3; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 12 / 31

18 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Problem: Den längsten Weg durch ein Programm finden Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for (i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j +1]) { swap (&a[j],&a[j +1]); return ; betrachte Aufrufe: bubblesort(a, size) Anzahl von Durchläufen, Vergleichen und Vertauschungen (engl. Swap) a = {1, 2, size = 2 D = 1, V = 1, S = 0; a = {1, 3, 2, size = 3 D = 3, V = 3, S = 1; a = {3, 2, 1, size = 3 D = 3, V = 3, S = 3; ist für den allgemeinen Fall nicht berechenbar Halteproblem Wieviele Schleifendurchläufe werden benötigt? in Echtzeitsystemen ist dieses Problem aber häufig lösbar kanonische Schleifenkonstrukte: for(int i = 0;i < X;++i) X ist oft eine Konstante oder zumindest beschränkt ggf. muss die obere Schranke manuell annotiert werden die maximale, nicht die exakte Pfadlänge ist von Belang c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 12 / 31

19 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

20 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

21 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; swap(&a[j],&a[j + 1]); c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

22 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; a[j] < a[j + 1] t f swap(&a[j],&a[j + 1]); c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

23 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; f j <= i t a[j] < a[j + 1] t f swap(&a[j],&a[j + 1]); ++j c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

24 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; i > 0 t j = 0; j <= i f --i t a[j] < a[j + 1] t f swap(&a[j],&a[j + 1]); ++j c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

25 III-3 WCET 4 Statische WCET-Analyse 4.1 Problemstellung Den längsten Weg durch ein Programm finden (2) Die möglichen Wege lassen sich durch Kontrollflussgraphen beschreiben Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundblöcken (engl. basic blocks) zusammen Grundblöcke sind sequentielle Code-Schnipsel hier wird gearbeitet Grundblöcke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen Sprünge zwischen Grundblöcken void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return; i = size - 1; i > 0 return; f t j = 0; j <= i f --i t a[j] < a[j + 1] t f swap(&a[j],&a[j + 1]); ++j c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 13 / 31

26 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); S1; S2; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

27 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); Summation der WCETs: e seq = e S1 + e S2 S1; S2; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

28 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); Summation der WCETs: e seq = e S1 + e S2 S1; S2; Verzweigung bedingte Ausführung if(p1 ()) S1 (); else S2 (); P1; f t S1; S2; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

29 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); Summation der WCETs: e seq = e S1 + e S2 S1; S2; Verzweigung bedingte Ausführung if(p1 ()) S1 (); else S2 (); Abschätzung der Gesamtausführungszeit: e cond = e P1 + max (e S1, e S2 ) P1; f t S1; S2; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

30 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); Summation der WCETs: e seq = e S1 + e S2 S1; S2; Verzweigung bedingte Ausführung if(p1 ()) S1 (); else S2 (); Abschätzung der Gesamtausführungszeit: e cond = e P1 + max (e S1, e S2 ) P1; f t S1; S2; Schleifen wiederholte Ausführung while (P1 ()) S1 (); P1; S1; t f c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

31 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Lösungsweg 1 : Timing Schema Abstraker Syntaxbaum Ableitung des maximalen Pfads anhand der Programmstruktur Sequenzen Hintereinanderausführung S1 (); S2 (); Summation der WCETs: e seq = e S1 + e S2 S1; S2; Verzweigung bedingte Ausführung if(p1 ()) S1 (); else S2 (); Abschätzung der Gesamtausführungszeit: e cond = e P1 + max (e S1, e S2 ) P1; f t S1; S2; Schleifen wiederholte Ausführung while (P1 ()) S1 (); Schleifendurchläufe berücksichtigen: e loop = e P1 + n (e P1 + e S1 ) P1; S1; t f c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 14 / 31

32 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return ; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 15 / 31

33 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); Schleife L 1 : P 1 = i > 0 Rumpf: L 2 ; --i; Durchläufe: size - 1 e L1 = e P1 +(size 1)(e P1 +e L2 +e i ) return ; c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 15 / 31

34 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return ; Schleife L 1 : P 1 = i > 0 Rumpf: L 2 ; --i; Durchläufe: size - 1 e L1 = e P1 +(size 1)(e P1 +e L2 +e i ) Schleife L 2 : P 2 = j < i Rumpf: C 1 ; ++j; Durchläufe: size - 1 e L2 = e P2 +(size 1)(e P2 +e C1 +e ++j ) c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 15 / 31

35 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return ; Schleife L 1 : P 1 = i > 0 Rumpf: L 2 ; --i; Durchläufe: size - 1 e L1 = e P1 +(size 1)(e P1 +e L2 +e i ) Schleife L 2 : P 2 = j < i Rumpf: C 1 ; ++j; Durchläufe: size - 1 e L2 = e P2 +(size 1)(e P2 +e C1 +e ++j ) Verzweigung C 1 : P 3 = a[j] > a[j + 1] S 1 = swap(&a[j],&a[j + 1]) e C1 = e P3 + e S1 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 15 / 31

36 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Beispiel: Bubblesort void bubblesort (int a[], int size ) { int i,j; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); return ; Schleife L 1 : P 1 = i > 0 Rumpf: L 2 ; --i; Durchläufe: size - 1 e L1 = e P1 +(size 1)(e P1 +e L2 +e i ) Schleife L 2 : P 2 = j < i Rumpf: C 1 ; ++j; Durchläufe: size - 1 e L2 = e P2 +(size 1)(e P2 +e C1 +e ++j ) Verzweigung C 1 : P 3 = a[j] > a[j + 1] S 1 = swap(&a[j],&a[j + 1]) e C1 = e P3 + e S1 Funktionsaufruf S 1 = swap(&a[j],&a[j + 1]) analog zum hier vorgestellten Verfahren c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 15 / 31

37 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Timing Schema: Eigenschaften, Vor- und Nachteile Eigenschaften Traversierung des abstrakten Syntaxbaums bottom-up d. h. an den Blättern beginnend, bis man zur Wurzel gelangt Aggregation der maximale Ausführungszeit nach festen Regeln für Sequenzen, Verzweigungen und Schleifen c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 16 / 31

38 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Timing Schema: Eigenschaften, Vor- und Nachteile Eigenschaften Traversierung des abstrakten Syntaxbaums bottom-up d. h. an den Blättern beginnend, bis man zur Wurzel gelangt Aggregation der maximale Ausführungszeit nach festen Regeln für Sequenzen, Verzweigungen und Schleifen Vorteile + einfaches Verfahren mit geringem Berechnungsaufwand + skaliert gut mit der Programmgröße c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 16 / 31

39 III-3 WCET 4 Statische WCET-Analyse 4.2 Timing Schema Timing Schema: Eigenschaften, Vor- und Nachteile Eigenschaften Traversierung des abstrakten Syntaxbaums bottom-up d. h. an den Blättern beginnend, bis man zur Wurzel gelangt Aggregation der maximale Ausführungszeit nach festen Regeln für Sequenzen, Verzweigungen und Schleifen Vorteile + einfaches Verfahren mit geringem Berechnungsaufwand + skaliert gut mit der Programmgröße Nachteile - Informationsverlust durch Aggregation Korrelationen (z. B. sich ausschließende Zweige) nicht-lokaler Codeteile lassen sich nicht berücksichtigen Schwierige Integration mit einer separaten Hardware-Analyse - Nichtrealisierbare Pfade (infeasible paths) nicht ausschließbar unnötige Überapproximation c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 16 / 31

40 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Pfadbasierte Bestimmung der WCET Mit der Anzahl f i der Ausführungen einer Kante E i bestimmt man die WCET e durch Summation der Ausführungszeiten des längsten Pfades: e = max f i e i P E i P c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 17 / 31

41 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Pfadbasierte Bestimmung der WCET Mit der Anzahl f i der Ausführungen einer Kante E i bestimmt man die WCET e durch Summation der Ausführungszeiten des längsten Pfades: e = max f i e i P E i P Problem: erfordert die explizite Aufzählung aller Pfade das ist algorithmisch nicht handhabbar c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 17 / 31

42 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Pfadbasierte Bestimmung der WCET Mit der Anzahl f i der Ausführungen einer Kante E i bestimmt man die WCET e durch Summation der Ausführungszeiten des längsten Pfades: e = max f i e i P E i P Problem: erfordert die explizite Aufzählung aller Pfade das ist algorithmisch nicht handhabbar Lösung: fasse die Bestimmung der WCET als Flussproblem auf der maximale Fluss durch das durch den Graphen gegebene Netzwerk führt zur gesuchten WCET Flussprobleme sind mathematisch gut untersucht und lassen sich durch lineare Ganzzahlprogrammierung lösen c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 17 / 31

43 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Lösungsansatz 2 : Implicit Path Enumeration Technique Lösungsansatz: Fasse die Bestimmung der WCET als Flussproblem auf [1] (Implicit Path Enumeration Technique, IPET) 1 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 18 / 31

44 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Lösungsansatz 2 : Implicit Path Enumeration Technique Lösungsansatz: Fasse die Bestimmung der WCET als Flussproblem auf [1] (Implicit Path Enumeration Technique, IPET) Vorgehen: Transformiere den Kontrollflussgraphen in ein ganzzahliges, lineares Optimierungsproblem (ILP) und löse es 1 bestimme einen Zeitanalysegraph aus dem Kontrollflussgraphen 2 formuliere das lineare Optimierungsproblem 3 bestimme die Flussrestriktionen des Zeitanalysegraphen dies sind die Nebenbedingungen im Optimierungsproblem 4 löse des Optimierungsproblem (z.b. mit lpsolve 1 ) 1 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 18 / 31

45 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Der Zeitanalysegraph (engl. timing analysis graph) Ein Zeitanalysegraph (oder kurz T-Graph) ist ein gerichteter Graph mit einer Menge von Knoten V = {V i und Kanten E = {E i. mit genau einer Quelle und einer Senke Knoten, aus denen/in die nur Kanten entspringen/münden jede Kante ist Bestandteile eines Pfads P von der Senke zur Kante solche ein Pfad P entspricht einer möglichen Abarbeitung jeder Kante wird ihre WCET e i zugeordnet c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 19 / 31

46 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Der Zeitanalysegraph (engl. timing analysis graph) Ein Zeitanalysegraph (oder kurz T-Graph) ist ein gerichteter Graph mit einer Menge von Knoten V = {V i und Kanten E = {E i. mit genau einer Quelle und einer Senke Knoten, aus denen/in die nur Kanten entspringen/münden jede Kante ist Bestandteile eines Pfads P von der Senke zur Kante solche ein Pfad P entspricht einer möglichen Abarbeitung jeder Kante wird ihre WCET e i zugeordnet Grundblöcke des Kontrollflussgraphen werden auf Kanten abgebildet Sequenz 1 2 1:e 1 2:e 2 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 19 / 31

47 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Der Zeitanalysegraph (engl. timing analysis graph) Ein Zeitanalysegraph (oder kurz T-Graph) ist ein gerichteter Graph mit einer Menge von Knoten V = {V i und Kanten E = {E i. mit genau einer Quelle und einer Senke Knoten, aus denen/in die nur Kanten entspringen/münden jede Kante ist Bestandteile eines Pfads P von der Senke zur Kante solche ein Pfad P entspricht einer möglichen Abarbeitung jeder Kante wird ihre WCET e i zugeordnet Grundblöcke des Kontrollflussgraphen werden auf Kanten abgebildet für Verzweigungen benötigt man Dummy-Kanten d i Sequenz Verzweigung Schleife 1 2 1:e 1 2:e :e 1 d 1 d 2 2:e 2 3:e 3 4:e :e 1 3:e 3 2:e 2 d 1 4:e 4 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 19 / 31

48 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Zirkulationen Eine Abbildung f : E R heißt Zirkulation, falls sie den Fluss erhält jeder Kante wird die Zahl der Ausführungen f i als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen erfordert die Einführung einer Rückkehrkante E e mit f e = 1 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 20 / 31

49 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Zirkulationen Eine Abbildung f : E R heißt Zirkulation, falls sie den Fluss erhält jeder Kante wird die Zahl der Ausführungen f i als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen erfordert die Einführung einer Rückkehrkante E e mit f e = 1 Flussrestriktionen schließen Zirkulationen ungültiger Abarbeitungen aus Formulierung als Nebenbedingungen des Optimierungsproblems Beschränkung der maximalen Anzahl von Schleifendurchläufen c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 20 / 31

50 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Zirkulationen Eine Abbildung f : E R heißt Zirkulation, falls sie den Fluss erhält jeder Kante wird die Zahl der Ausführungen f i als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen erfordert die Einführung einer Rückkehrkante E e mit f e = 1 Flussrestriktionen schließen Zirkulationen ungültiger Abarbeitungen aus Formulierung als Nebenbedingungen des Optimierungsproblems Beschränkung der maximalen Anzahl von Schleifendurchläufen 1:e 1 f 1 = f 2 + f 4 wird durch die Zirkulation garantiert 2:e 2 4:e 4 d 1 3:e 3 d 2 d 3 5:e 5 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 20 / 31

51 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Zirkulationen Eine Abbildung f : E R heißt Zirkulation, falls sie den Fluss erhält jeder Kante wird die Zahl der Ausführungen f i als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen erfordert die Einführung einer Rückkehrkante E e mit f e = 1 Flussrestriktionen schließen Zirkulationen ungültiger Abarbeitungen aus Formulierung als Nebenbedingungen des Optimierungsproblems Beschränkung der maximalen Anzahl von Schleifendurchläufen 4:e 4 1:e 1 2:e 2 f 1 = f 2 + f 4 wird durch die Zirkulation garantiert gültige Zirkulation: {E 1, E 4, d 2, E 5, E e {E 3, d 1 aber keine gültige Abarbeitung d 1 3:e 3 d 2 d 3 5:e 5 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 20 / 31

52 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Zirkulationen Eine Abbildung f : E R heißt Zirkulation, falls sie den Fluss erhält jeder Kante wird die Zahl der Ausführungen f i als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen erfordert die Einführung einer Rückkehrkante E e mit f e = 1 Flussrestriktionen schließen Zirkulationen ungültiger Abarbeitungen aus Formulierung als Nebenbedingungen des Optimierungsproblems Beschränkung der maximalen Anzahl von Schleifendurchläufen 1:e 1 2:e 2 4:e 4 d 1 3:e 3 d 2 d 3 5:e 5 f 1 = f 2 + f 4 wird durch die Zirkulation garantiert gültige Zirkulation: {E 1, E 4, d 2, E 5, E e {E 3, d 1 aber keine gültige Abarbeitung Flussrestriktion f 3 5f 2 löst dieses Problem wird E 2 nicht abgearbeitet, so gilt f = 0 hier: Beschränkung auf 5 Schleifendurchläufe Nebenbedingung des Optimierungsproblems c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 20 / 31

53 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 5:e 5 d 3 d 4 6:e 6 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

54 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort j <= i 4:e 4 t a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j d 5 4:e 4 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

55 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort 2:e 2 d 7 i > 0 2:e 2 t j = 0; 3:e 3 d 1 3:e 3 8:e 8 8:e 8 --i j <= i 4:e 4 t f a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j d 5 4:e 4 d 6 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

56 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort i = size - 1; 1:e 1 1:e 1 2:e 2 d 7 i > 0 2:e 2 t j = 0; 3:e 3 d 1 3:e 3 8:e 8 8:e 8 --i j <= i 4:e 4 t f a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j d 5 4:e 4 d 6 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

57 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort i = size - 1; 1:e 1 1:e 1 2:e 2 d 7 i > 0 2:e 2 t f 9:e 9 return; j = 0; 3:e 3 d 8 d 1 3:e 3 8:e 8 8:e 8 --i j <= i 4:e 4 t f a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j 9:e d 5 9 4:e 4 d 6 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

58 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort i = size - 1; 1:e 1 1:e 1 2:e 2 d 7 i > 0 2:e 2 t f 9:e 9 return; j = 0; 3:e 3 d 8 d 1 3:e 3 8:e 8 8:e 8 --i j <= i 4:e 4 t f a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j 9:e d 5 9 4:e 4 d 6 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

59 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET Beispiel: Bubblesort i = size - 1; 1:e 1 1:e 1 2:e 2 d 7 i > 0 2:e 2 t f 9:e 9 return; j = 0; 3:e 3 d 8 d 1 3:e 3 8:e 8 8:e 8 --i j <= i 4:e 4 t f a[j] < a[j + 1] 5:e 5 t f swap(&a[j],&a[j + 1]); 6:e 6 7:e 7 ++j 9:e d 5 9 4:e 4 d 6 d 2 5:e 5 d 4 d 3 6:e 6 7:e 7 Flussrestriktionen, die sich aus Schleifen ergeben: äußere Schleife : f 2 (size 1)f 1 innere Schleife : f 4 (size 1)f 3 Flussrestriktionen, die sich aus Verzweigungen ergeben: bedingte Vertauschung: f d3 + f 6 = f 7 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 21 / 31

60 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET IPET: Eigenschaften, Vor- und Nachteile betrachte mögliche Abarbeitungen des Kontrollflussgraphen dabei werden alle Pfade implizit in Betracht gezogen zunächst wird aus dem Kontrollflussgraph ein T-Graph erzeugt dieser wird in ganzzahliges lineares Optimierungsproblem überführt c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 22 / 31

61 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET IPET: Eigenschaften, Vor- und Nachteile betrachte mögliche Abarbeitungen des Kontrollflussgraphen dabei werden alle Pfade implizit in Betracht gezogen zunächst wird aus dem Kontrollflussgraph ein T-Graph erzeugt dieser wird in ganzzahliges lineares Optimierungsproblem überführt Vorteile + Möglichkeit komplexer Flussrestriktionen z. B. sich ausschließende Äste aufeinanderfolgender Verzweigungen + Nebenbedingungen für das ILP sind leicht aufzustellen + viele Werkzeuge zur Lösung von ILPs verfügbar c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 22 / 31

62 III-3 WCET 4 Statische WCET-Analyse 4.3 IPET IPET: Eigenschaften, Vor- und Nachteile betrachte mögliche Abarbeitungen des Kontrollflussgraphen dabei werden alle Pfade implizit in Betracht gezogen zunächst wird aus dem Kontrollflussgraph ein T-Graph erzeugt dieser wird in ganzzahliges lineares Optimierungsproblem überführt Vorteile + Möglichkeit komplexer Flussrestriktionen z. B. sich ausschließende Äste aufeinanderfolgender Verzweigungen + Nebenbedingungen für das ILP sind leicht aufzustellen + viele Werkzeuge zur Lösung von ILPs verfügbar Nachteile - das Lösen eines ILP ist im Allgemeinen NP-hart - auch Flussrestriktionen sind kein Allheilmittel Beschreibung der Ausführungsreihenfolge ist problematisch c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 22 / 31

63 III-3 WCET Gliederung 5 Hardware-Analyse Die Maschinenprogrammebene 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 23 / 31

64 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Wie lange dauern die sequentiellen Code-Schnipsel Die WCETs e i der einzelnen Grundblöcke ist Eingabe für die Flussanalyse Grundproblem: Ausführungszyklen von Instruktionen zählen _getop : link a6,#0 ; 16 Zyklen moveml #0x3020,sp@ - ; 32 Zyklen movel a6@ (8), a2 ; 16 Zyklen movel a6@ (12), d3 ; 16 Zyklen Quelle: Peter Puschner [1] Ergebnis: e getopt = 80 Zyklen Annahmen: obere Schranke für jede Instruktion die obere Schranke der Sequenz bestimmt man durch Summation c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 24 / 31

65 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Wie lange dauern die sequentiellen Code-Schnipsel Die WCETs e i der einzelnen Grundblöcke ist Eingabe für die Flussanalyse Grundproblem: Ausführungszyklen von Instruktionen zählen _getop : link a6,#0 ; 16 Zyklen moveml #0x3020,sp@ - ; 32 Zyklen movel a6@ (8), a2 ; 16 Zyklen movel a6@ (12), d3 ; 16 Zyklen Quelle: Peter Puschner [1] Ergebnis: e getopt = 80 Zyklen Annahmen: obere Schranke für jede Instruktion die obere Schranke der Sequenz bestimmt man durch Summation Problem: Vorgehen ist äußerst pessimistisch und zum Teil falsch falsch für Prozessoren mit Laufzeitanomalien WCET der Sequenz > Summe der WCETs aller Instruktionen pessimistisch für moderne Prozessoren Pipeline, Cache, Branch Prediction, Prefetching,... haben großen Anteil an der verfügbaren Rechenleistung heutiger Prozessoren blanke Summation einzelner WCETs ignoriert diese Maßnahmen c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 24 / 31

66 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Hardware-Analyse Hardware-Analyse teilt sich in verschiedene Phasen Aufteilung ist nicht dogmenhaft festgeschrieben c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 25 / 31

67 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Hardware-Analyse Hardware-Analyse teilt sich in verschiedene Phasen Aufteilung ist nicht dogmenhaft festgeschrieben Integration von Pfad- und Cache-Analyse 1 Pipeline-Analyse Wie lange dauert die Ausführung der Instruktionssequenz? 2 Cache- und Pfad-Analyse sowie WCET-Berechnung Cache-Analyse wird direkt in das Optimierungsproblem integriert c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 25 / 31

68 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Hardware-Analyse Hardware-Analyse teilt sich in verschiedene Phasen Aufteilung ist nicht dogmenhaft festgeschrieben Integration von Pfad- und Cache-Analyse 1 Pipeline-Analyse Wie lange dauert die Ausführung der Instruktionssequenz? 2 Cache- und Pfad-Analyse sowie WCET-Berechnung Cache-Analyse wird direkt in das Optimierungsproblem integriert Separate Pfad- und Cache-Analyse 1 Cache-Analyse kategorisiert Speicherzugriffe mit Hilfe einer Datenflussanalyse 2 Pipeline-Analyse Ergebnisse der Cache-Analyse werden direkt berücksichtigt 3 Pfad-Analyse und WCET-Berechnung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 25 / 31

69 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Cache-Analyse [3, Kapitel 22] 5.1 Cache-Analyse Cache: ein kleiner, schneller Zwischenspeicher, Zugriffszeiten auf Daten/Instruktionen variieren je nach Zustand des Caches enorm: Treffer (engl. hit), Daten/Instruktion sind im Cache e h Fehlschlag (engl. miss), Daten/Instruktion sind nicht im Cache e m Hits sind schneller als Misses: e m e h (> 100 Taktzyklen möglich) c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 26 / 31

70 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Cache-Analyse [3, Kapitel 22] 5.1 Cache-Analyse Cache: ein kleiner, schneller Zwischenspeicher, Zugriffszeiten auf Daten/Instruktionen variieren je nach Zustand des Caches enorm: Treffer (engl. hit), Daten/Instruktion sind im Cache e h Fehlschlag (engl. miss), Daten/Instruktion sind nicht im Cache e m Hits sind schneller als Misses: e m e h (> 100 Taktzyklen möglich) Folgende Eigenschaften von Caches haben Einfluss auf seine Analyse Typ Cache für Instruktionen Cache für Daten kombinierter Cache für Instruktionen und Daten Auslegung direkt abgebildet (engl. direct mapped) vollassoziativ (engl. fully associative) satz- oder mengenassoziativ (engl. set associative) Seitenersetzungsstrategie engl. (pseudo) least recently used, (Pseudo-)LRU engl. (pseudo) first in first out, (Pseudo-)FIFO c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 26 / 31

71 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Ergebnisse der Cache-Analyse 5.1 Cache-Analyse Hilfreich ist, zu wissen, ob z.b. eine Instruktion im Cache ist, oder nicht: must, die Instruktion ist garantiert im Cache man kann immer die schnellere Ausführungszeit e h annehmen wird für die Vorhersage von Treffern verwendet c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 27 / 31

72 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Ergebnisse der Cache-Analyse 5.1 Cache-Analyse Hilfreich ist, zu wissen, ob z.b. eine Instruktion im Cache ist, oder nicht: must, die Instruktion ist garantiert im Cache man kann immer die schnellere Ausführungszeit e h annehmen wird für die Vorhersage von Treffern verwendet may, die Instruktion ist vielleicht im Cache ist dies nicht der Fall, muss man die Ausführungszeit e m annehmen wird für die Vorhersage von Fehlschlägen verwendet c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 27 / 31

73 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Ergebnisse der Cache-Analyse 5.1 Cache-Analyse Hilfreich ist, zu wissen, ob z.b. eine Instruktion im Cache ist, oder nicht: must, die Instruktion ist garantiert im Cache man kann immer die schnellere Ausführungszeit e h annehmen wird für die Vorhersage von Treffern verwendet may, die Instruktion ist vielleicht im Cache ist dies nicht der Fall, muss man die Ausführungszeit e m annehmen wird für die Vorhersage von Fehlschlägen verwendet persistent, die Instruktion verbleibt im Cache erster Zugriff ist ein Fehlschlag, alle weiteren sind Treffer erster Zugriff: e m, weitere Zugriffe: e h ist besonders für Schleifen interessant, die den Cache füllen c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 27 / 31

74 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Übersetzer Binärcode c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

75 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Binärcode c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

76 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Transformation von Flussrestriktionen Binärcode c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

77 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Transformation von Flussrestriktionen Binärcode Hardware-Analyse c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

78 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Transformation von Flussrestriktionen Berechnung der Ausführungsszenarien Binärcode Hardware-Analyse c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

79 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Transformation von Flussrestriktionen Berechnung der Ausführungsszenarien Binärcode Hardware-Analyse WCET c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

80 III-3 WCET 5 Hardware-Analyse Die Maschinenprogrammebene Werkzeugkette für die WCET-Analyse [2] 5.2 Werkzeugunterstützung Quelltext Extraktion von Flussrestriktionen Übersetzer Transformation von Flussrestriktionen Berechnung der Ausführungsszenarien Binärcode Hardware-Analyse WCET c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 28 / 31

81 III-3 WCET Gliederung 6 Zusammenfassung 1 Übersicht 2 Problemstellung 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse 5 Hardware-Analyse Die Maschinenprogrammebene 6 Zusammenfassung c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 29 / 31

82 III-3 WCET Resümee 6 Zusammenfassung Häufigkeit Lower Bound BCET BOET WOET WCET Upper Bound Ausführungszeit Bester Fall Schlechtester Fall WCET-Bestimmung gliedert sich grob in zwei Teilprobleme Programmiersprachenebene (makroskopisch) finde die längsten Pfade durch ein Programm Maschinenprogrammebene (mikroskopisch) bestimmte die WCET der Elementaroperationen Tatsächliche Ausführungszeit: BCET / WCET c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 30 / 31

83 III-3 WCET Resümee 6 Zusammenfassung Häufigkeit Lower Bound BCET BOET WOET WCET Upper Bound Ausführungszeit Bester Fall Schlechtester Fall Dynamische Analyse beobachtet die Ausführungszeit Messung bezieht beide Ebenen mit ein Vollständige Messung im Allgemeinen nicht möglich Unterapproximation Gemessene Ausführungszeit: BOET / WOET c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 30 / 31

84 III-3 WCET Resümee 6 Zusammenfassung Häufigkeit Lower Bound BCET BOET WOET WCET Upper Bound Ausführungszeit Bester Fall Schlechtester Fall Statische Analyse schätzt die Ausführungszeit Pfadanalyse (Programmiersprachenebene) Abstraktion (Timing Schema vs. IPET) Gibt pessimistische Schranken an Überapproximation Geschätzte Ausführungszeitgrenzen: Lower- / Upper Bound c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 30 / 31

85 III-3 WCET Resümee 6 Zusammenfassung Häufigkeit Lower Bound BCET BOET WOET WCET Upper Bound Ausführungszeit Bester Fall Schlechtester Fall Hardware-Analyse Eingaben für die WCET-Berechnung Hauptaufgaben: Cache- und Pipeline-Analyse must-approximation und may-approximation Werkzeugunterstützung kombiniert Ebenen und macht die WCET-Analyse handhabbar c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 30 / 31

86 III-3 WCET Literaturverzeichnis 7 Bibliographie [1] Puschner, P. : Zeitanalyse von Echtzeitprogrammen. Treitlstr. 1-3/182-1, 1040 Vienna, Austria, Technische Universität Wien, Institut für Technische Informatik, Diss., 1993 [2] Puschner, P. ; Huber, B. : Zeitanalyse von sicherheitskritischen Echtzeitsystemen Lecture Notes [3] Wilhelm, R. : Embedded Systems. http: //react.cs.uni-sb.de/teaching/embedded-systems-10-11/lecture-notes.html, Lecture Notes c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 31 / 31

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich Echtzeitsysteme Zeitliche Analyse von Echtzeitanwendungen Peter Ulbrich Lehrstuhl für Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg https://www4.cs.fau.de 13.

Mehr

Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme Verlässliche Echtzeitsysteme Verifikation nicht-funktionaler Eigenschaften Peter Ulbrich Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme Verlässliche Echtzeitsysteme Verifikation nicht-funktionaler Eigenschaften Peter Ulbrich Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme Verlässliche Echtzeitsysteme Verifikation nicht-funktionaler Eigenschaften Peter Ulbrich Lehrstuhl für Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg https://www4.cs.fau.de

Mehr

Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme Verlässliche Echtzeitsysteme Verifikation nicht-funktionaler Eigenschaften Peter Ulbrich Lehrstuhl für Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg https://www4.cs.fau.de

Mehr

Echtzeitsysteme. Übungen zur Vorlesung. Analyse von Ausführungszeiten

Echtzeitsysteme. Übungen zur Vorlesung. Analyse von Ausführungszeiten Echtzeitsysteme Übungen zur Vorlesung Analyse von Ausführungszeiten Florian Schmaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) Lehrstuhl für Informatik 4 (Verteilte Systeme

Mehr

WCET-Analyse in Mehrkern- Systemen

WCET-Analyse in Mehrkern- Systemen WCET-nalyse in Mehrkern- Systemen Sebastian Rietsch Folie 1 Inhalt 1. Motivation. Messbasierter nsatz 3. Statische WCET-nalyse 1. Pfadbasierte Bestimmung, Timing Schema, IPET. Hardware-nalyse 4. WCET(m)

Mehr

Sichere Zukunftsvorhersagen durch Modellierung und Approximation

Sichere Zukunftsvorhersagen durch Modellierung und Approximation Sichere Zukunftsvorhersagen durch Modellierung und Approximation Jan Reineke @ saarland university computer science Forschungstage Informatik 24. Juni 2016 Der Kontext: Harte Echtzeitsysteme Sicherheitskritische

Mehr

1 Übersicht. 2 Problemstellung. 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse. 5 Hardware-Analyse Die Maschinenprogrammebene

1 Übersicht. 2 Problemstellung. 3 Dynamische WCET-Analyse (Messbasiert) 4 Statische WCET-Analyse. 5 Hardware-Analyse Die Maschinenprogrammebene 1 Übersich Echzeisyseme Zeiliche Analyse von Echzeianwendungen Peer Ulbrich Lehrsuhl Informaik 4 28. Okober 2014 1 Übersich 4 Saische -Analyse c fs, pu (Lehrsuhl Informaik 4) Echzeisyseme WS 14/15 1 /

Mehr

54. Analysewerkzeuge für Worst-Case Execution Time (Attributanalyse) 54.1 AiT - Worst-Case Execution Time Analyzer. Obligatorische Literatur

54. Analysewerkzeuge für Worst-Case Execution Time (Attributanalyse) 54.1 AiT - Worst-Case Execution Time Analyzer. Obligatorische Literatur 54. Analysewerkzeuge für Worst-Case Execution Time (Attributanalyse) 2 Obligatorische Literatur Reinhold Heckmann, Christian Ferdinand. Worst-Case Execution Time Prediction by Static Program Analysis.

Mehr

Immediate Priority Ceiling

Immediate Priority Ceiling Vereinfachtes Protokoll: Immediate priority ceiling: Prozesse, die ein Betriebsmittel s belegen, bekommen sofort die Priorität ceil(s) zugewiesen. Anwendungsgebiet: Immediate Priority Ceiling Verwendung

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Ausgewählte Kapitel eingebetteter Systeme

Ausgewählte Kapitel eingebetteter Systeme Ausgewählte Kapitel eingebetteter Systeme Verfahren zur Bestimmung der WCET Andreas Kaiser Friedrich-Alexander University Erlangen-Nuremberg Übersicht Wieso WCET Berechnung? Methoden zur Bestimmung der

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 5

Algorithmen und Datenstrukturen 1 Kapitel 5 Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht

Mehr

Ein Benchmarkgenerator zur Bewertung von WCET-Analysatoren

Ein Benchmarkgenerator zur Bewertung von WCET-Analysatoren Ein Benchmarkgenerator zur Bewertung von WCET-Analysatoren 16. November 2017 Christian Eichler eichler@cs.fau.de Lehrstuhl für Verteilte Systeme und Betriebssysteme Motivation Motivation: WCET-Analysatoren

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Branch-and-Bound und Varianten. Kapitel 3. Branch-and-Bound und Varianten. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 98 / 159

Branch-and-Bound und Varianten. Kapitel 3. Branch-and-Bound und Varianten. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 98 / 159 Kapitel 3 und Varianten Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 98 / 159 Inhalt Inhalt 3 und Varianten Anwendungsbeispiele Branch-and-Cut Peter Becker (H-BRS) Operations Research

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Die Forschungsuniversität Meyerhenke, in der Institut für Theoretische Informatik

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer Aufgabe 10.1 Gegeben sei folgendes Code-Fragment, das zwei geschachtelte Schleifen implementiert: addi $t0, $a0, 100 outer: addi $t1, $a1, 200 inner: lw $t4, 0($t0) lw $t5, 0($t1) add $t2, $t0, $t1 add

Mehr

Kapitel 9: Lineare Programmierung Gliederung

Kapitel 9: Lineare Programmierung Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse

Mehr

Abstrakte Interpretation (AbsInt)

Abstrakte Interpretation (AbsInt) Abstrakte Interpretation (AbsInt) Viktoria Pleintinger 24. Juni 2009 1 Inhaltsverzeichnis 1 Einleitung 3 2 Worst-Case Laufzeitanalyse aufgrund von Messung 4 3 WCET Analyse durch Static Programm Analysis

Mehr

3.6 Branch-and-Bound-Verfahren

3.6 Branch-and-Bound-Verfahren 36 Branch-and-Bound-Verfahren Die Branch-and-Bound -Methode beruht darauf, auf eine intelligente Weise alle zulässigen Lösungen eines kombinatorischen Optimierungsproblems aufzulisten und mit Hilfe von

Mehr

Ausführungszeiten. Worst-Case Execution-Time. Übung zur Vorlesung EZS. Zeitgeber Oszilloskop Diskussion

Ausführungszeiten. Worst-Case Execution-Time. Übung zur Vorlesung EZS. Zeitgeber Oszilloskop Diskussion 1 Überblick Ausführungszeiten Übung zur Vorlesung EZS Florian Franzmann Martin Hoffmann Tobias Klaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Vorlesung Echtzeitsysteme II

Vorlesung Echtzeitsysteme II 1 / 51 Vorlesung Echtzeitsysteme II Thema 6: Worst-Case Execution Timing (WCET) Robert Baumgartl 24. November 2015 2 / 51 Literatur keine dedizierten Lehrbücher, da junges Gebiet Überblick über Forschungsstand:

Mehr

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 16.11.2010 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion

Mehr

Algorithmen und Komplexität

Algorithmen und Komplexität Algorithmen und Komplexität Dynamische Programmierung Markus Ullrich Norbert Baum Fachbereich Informatik - IIb07 Hochschule Zittau/Görlitz 28. Mai 2009 1 / 29 Wie sieht es mit langen Ketten aus? A 1 A

Mehr

Kapitel 2: Sortier- und Selektionsverfahren Gliederung

Kapitel 2: Sortier- und Selektionsverfahren Gliederung Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte Algorithmen

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, chnitte, bipartite Graphen Matthias Hoffmann 5.5.009 Matthias Hoffmann Flüsse, chnitte, bipartite Graphen 5.5.009 / 48 Übersicht Einführung Beispiel Definitionen Ford-Fulkerson-Methode Beispiel

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016 Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithms and Complexity Group 186.815 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2016 5. Oktober 2016 Machen Sie

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

NP-vollständige Probleme

NP-vollständige Probleme Effiziente Algorithmen Lösen NP-vollständiger Probleme 256 NP-vollständige Probleme Keine polynomiellen Algorithmen, falls P NP. Viele wichtige Probleme sind NP-vollständig. Irgendwie müssen sie gelöst

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

Mehr

Algorithmen zur Visualisierung von Graphen Lagenlayouts Teil 2

Algorithmen zur Visualisierung von Graphen Lagenlayouts Teil 2 Algorithmen zur Visualisierung von Graphen Teil 2 INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Tamara Mchedlidze Martin Nöllenburg Ignaz Rutter 18.12.2012 Geg.: gerichteter Graph D = (V,

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

Teil II Optimierung. Modellgestützte Analyse und Optimierung Kap. 5 Einführung Optimierung. Peter Buchholz 2006

Teil II Optimierung. Modellgestützte Analyse und Optimierung Kap. 5 Einführung Optimierung. Peter Buchholz 2006 Teil II Optimierung Gliederung 5 Einführung, Klassifizierung und Grundlagen 6 Lineare Optimierung 7 Nichtlineare Optimierung 8 Dynamische Optimierung (dieses Jahr nur recht kurz) (9 Stochastische Optimierungsmethoden

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

Kapitel 3: Anweisungen

Kapitel 3: Anweisungen Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -66 Kapitel : Anweisungen Bedingte Anweisungen (Verzweigungen) Wiederholte Anweisungen (Schleifen) Abweisschleife Durchlaufschleife

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7 Technische Universität München WS 2012 Institut für Informatik Prof. Dr. H.-J. Bungartz Prof. Dr. T. Huckle Prof. Dr. M. Bader Kristof Unterweger Perlen der Informatik I Wintersemester 2012 Aufgabenblatt

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2/212 2.9. - 3.9.2 17.1. - 21.1.2 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 3 aus "Abenteuer Informatik" von Jens Gallenbacher

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Kapitel 1 Parallele Modelle Wie rechnet man parallel? PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische

Mehr

Ausgewählte Kapitel eingebetteter Systeme

Ausgewählte Kapitel eingebetteter Systeme Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg 08.06.2005 Übersicht Problemdefinition Scheduling-Strategien

Mehr

WCET Analyse. Florian Franzmann Tobias Klaus Peter Wägemann

WCET Analyse. Florian Franzmann Tobias Klaus Peter Wägemann WCET Analyse Florian Franzmann Tobias Klaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) http://www4.cs.fau.de 11. November

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

Mehr

Inhalt. Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm. Interessante Fragen über Programme

Inhalt. Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm. Interessante Fragen über Programme Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm Inhalt Eigenschaften von Programmen Approximation Effective Abstractions (P. Cousot) Voraussage des Cacheverhaltens Interessante

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Codegenerierung für Basisblöcke (1)

Codegenerierung für Basisblöcke (1) Codegenerierung für Basisblöcke (1) Basisblock (Grundblock): Teil des Kontrollflussgraphen, der keine Verzweigungen (Sprünge) oder Vereinigungen (Label) enthält keine Zyklen: bessere Optimierung möglich

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Wir gewichten die Kanten von G wie folgt: Kante e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d(e i )

Wir gewichten die Kanten von G wie folgt: Kante e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d(e i ) Prof. Dr. U. Faigle J. Voss SS 2011 12. Übung zur Einführung in die Mathematik des Operations Research Dieses Übungsblatt wird nicht mehr gewertet. Aufgabe 1: Sei G = (V, E) ein gerichteter Graph und x

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

09. Übung zu Algorithmen I 12. Juli 2017

09. Übung zu Algorithmen I 12. Juli 2017 09. Übung zu Algorithmen I 12. Juli 2017 Björn Kaidel bjoern.kaidel@kit.edu mit Folien von Lukas Barth 1 / 67 Roadmap Ausblick: Was sind schwierige Probleme? Travelling Salesman Problem - Reprise ein ILP

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

C-Propädeutikum Anweisungen

C-Propädeutikum Anweisungen C-Propädeutikum Anweisungen Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann Ausdrücke Institut

Mehr

11. Übung zu Algorithmen I 6. Juli 2016

11. Übung zu Algorithmen I 6. Juli 2016 11. Übung zu Algorithmen I 6. Juli 2016 Lisa Kohl lisa.kohl@kit.edu mit Folien von Lukas Barth Roadmap Ausblick: Was sind schwierige Probleme? Travelling Salesman Problem - Reprise ein ILP ein Algorithmus

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Optimierung. Vorlesung 08

Optimierung. Vorlesung 08 Optimierung Vorlesung 08 Heute Dualität Ganzzahligkeit Optimierung der Vorlesung durch Evaluierung 2 Das duale LP Das primale LP Maximiere c T x unter Ax b, x R d 0. wird zu dem dualen LP Minimiere b T

Mehr

Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme Verlässliche Echtzeitsysteme Grundlagen der statischen Programmanalyse Peter Ulbrich Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Heapsort. 1. Erstelle aus dem gegebenen Array einen Max-Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays

Heapsort. 1. Erstelle aus dem gegebenen Array einen Max-Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen Effiziente Algorithmen Einführung 1 Inhalt 1. Flußprobleme 2. Matching. Lineares Programmieren 4. Ganzzahliges Programmieren 5. NP-Vollständigkeit 6. Approximationsalgorithmen 7. Backtracking und Branch-and-Bound

Mehr

Logistik: Transport. Grundlagen, lineare Transport- und Umladeprobleme. von Prof. Dr. Wolfgang Domschke. TU Darmstadt. 5.,.überarbeitete Auflage

Logistik: Transport. Grundlagen, lineare Transport- und Umladeprobleme. von Prof. Dr. Wolfgang Domschke. TU Darmstadt. 5.,.überarbeitete Auflage Logistik: Transport Grundlagen, lineare Transport- und Umladeprobleme von Prof. Dr. Wolfgang Domschke TU Darmstadt 5.,.überarbeitete Auflage R. Oldenböurg Verlag München Wien Inhaltsverzeichnis Vorwort

Mehr

Das Problem des minimalen Steiner-Baumes

Das Problem des minimalen Steiner-Baumes Das Problem des minimalen Steiner-Baumes Ein polynomieller Approximationsalgorithmus Benedikt Wagner 4.05.208 INSTITUT FU R THEORETISCHE INFORMATIK, LEHRSTUHL ALGORITHMIK KIT Die Forschungsuniversita t

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen

Mehr

Electronic Design Automation (EDA) Technology Mapping

Electronic Design Automation (EDA) Technology Mapping Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Mehr

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 12. April 2017 Union-Find Datenstruktur Graphen I Robert E. Tarjan Algorithmen und Datenstrukturen,

Mehr