Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken...

26
Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department of Computer Science University of Karlsruhe

Transcript of Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken...

Page 1: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH) Chair for Embedded SystemsSS 2006

Scheduling von Prozess-Netzwerken

Axel Sanwald

CES - Chair for Embedded Systems Department of Computer Science

University of Karlsruhe

Page 2: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

2

Übersicht

• Was sind Prozess-Netzwerke?

• Wo kann man sie verwenden?

• Grenzen/mögliche Probleme/Gefahren

• Gewünschte Eigenschaften eines Schedulers

• Statisches Scheduling

• Dynamisches Scheduling

• Zusammenfassung

Page 3: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

3

Was sind Kahn-Prozess-Netzwerke?

• Modell für paralleles Rechnen, bestehend aus Prozessen und Kanälen

• Kanal: einziger Kommunikationsweg – gerichtet, asynchron, FIFO

• Prozess: Teilprogramm, dass parallel ausführbar ist

• Semantik: Ausgangskanäle jederzeit beschreibbar, Lesen blockiert bei leerem Eingangskanal

• Terminierung: alle Prozesse warten auf leeren Eingangskanal

• Darstellung kann als Graph erfolgen, hier ein Beispiel:

Prozess

Kanal Nachricht= Token

Page 4: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

4

Einsatzmöglichkeiten

• Einige Beispiele:

Netzwerkverkehr inz.B. LAN, WAN oderpeer-to-peer Netzen

Datenströme in eingebetteten Systemen

Elementar-sensor

Auf-bereitung

Vor-verarbeitung

Auswertung

physikalische

Größen

...01011101...

...5,7

,13

.. .

...2*5;8*1;......Hund;Auto;...

IPC oder RPC in µKernel-

Betriebssystemen

µKernel

Console

Network

Memory

Page 5: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

5

Die Kehrseite des Kahn-Netzwerk-Modells

• Es kann immer nur von einem bestimmten

Kanal gelesen werden!

z.B. select-syscall nicht modellierbar

• Programmablauf muss nicht deterministisch sein

unvorhersagbares Zeitverhalten einer Applikation

• Durch unbestimmten Programmablauf oder

durch das Programm selbst ist

unendlicher Speicherbedarf möglich

readFrom( any,...);NO!NO!

NO!NO!

P2

P1

P3

P4

Page 6: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

6

Gewünschte Eigenschaften eines Schedulers

1. Ein Scheduler sollte die komplette Ausführung eines Kahn-Prozess-Netzwerkes der partiellen bevorzugen. Soll z.B. ein Programm niemals terminieren, dann darf es vom Scheduler auch nicht eingeschränkt werden.

2. Ein Scheduler sollte, sofern möglich die Prozesse eines Netzwerks in einer Reihenfolge ausführen, so daß sich stets nur eine beschränkte Menge an Tokens auf jedem Kanal befinden.

3. Im Konfliktfall ist 1. zu bevorzugen.

Page 7: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

7

K1

K2

P2P1

Statisches Scheduling

• Nur auf Synchrone-Datenfluß-Netzwerke, Spezialfall von Kahn- Prozess-Netzwerken, anwendbar:

1. Topologiematrix Gamma aufstellen

2. Lösung für Balancegleichung finden

3. Anfangswertproblem lösen

1

3

3

3

0

3100

3100

0110

0011

0011

rrP2

P1

P3

P4 3311

1 111

11

Mögliche Ausführungsreihenfolge:1, 2, 1, 2, 1, 2, 3, 3, 3, 4

Ziel:Finden einer

Ausführungsreihenfolge

Wunsch

eig

ensch

afte

n

1

2

Page 8: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

8

Dynamisches Scheduling I

• Ziel: Unzulänglichkeiten von statischem Scheduling umgehen

• Ein einfaches Daten gesteuertes Scheduling Verfahren:

1. Suche alle Prozesse im Zustand bereit

2. Starte alle gefundenen Prozesse

3. Warte bis alle gestarteten Prozesse blockiert sind

4. Springe zu 1.

Wunsch

eig

ensch

afte

n

1

2

Page 9: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

9

Dynamisches Scheduling II

• Zweites Ziel erfordert Semantik-Änderung des Netzwerks:

Neu: beschränkte Kanäle und blockierendes Schreiben

• Allerdings können ‘künstliche Verklemmungen‘ entstehen!

• Folgender Algorithmus löst das Problem:

1. Initialisiere alle Kanäle mit einer Startkapazität

2. Führe Programm mit vorherigem Scheduler aus

3. Bei Stop: prüfe ob es durch ein Write blockierte Prozesse gibt

4. Ja: erhöhe Kanalkapazitäten aller blockierten Kanäle und springe zu 2.

5. Nein: Terminiere

Wunsch

eig

ensch

afte

n

1

2

k=1

k=11

1 2

2

P1 P2

Page 10: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

10

Beispiel

P2

P1

P3

P4 3311

1 111

11

k=0

k=0 k=1 k=0 k=3

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

ProzessBereit Verklemmt Blockiert

Page 11: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

11

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

P2

P1

P3

P4 3311

1 111

11

k=0

k=0 k=1 k=0 k=3

ProzessBereit Verklemmt Blockiert

Page 12: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

12

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

P2

P1

P3

P4 3311

1 111

11

k=0

k=1 k=1 k=0 k=3

ProzessBereit Verklemmt Blockiert

Page 13: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

13

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

P2

P1

P3

P4 3311

1 111

11

k=1

k=1 k=1 k=0 k=3

ProzessBereit Verklemmt Blockiert

Page 14: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

14

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

P2

P1

P3

P4 3311

1 111

11

k=1

k=1 k=1 k=0 k=3

ProzessBereit Verklemmt Blockiert

Page 15: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

15

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

9. Scheduler starten

P2

P1

P3

P4 3311

1 111

11

k=2

k=1 k=1 k=1 k=3

ProzessBereit Verklemmt Blockiert

Page 16: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

16

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

9. Scheduler starten

10.Deadlocks bei Kanälen 3,4 beheben

P2

P1

P3

P4 3311

1 111

11

k=2

k=1 k=1 k=1 k=3

ProzessBereit Verklemmt Blockiert

Page 17: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

17

Beispiel

1. Kanalkapazitäten entsprechend Initialzustand setzen,

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

9. Scheduler starten

10.Deadlocks bei Kanälen 3,4 beheben

11.Scheduler starten

P2

P1

P3

P4 3311

1 111

11

k=3

k=1 k=1 k=2 k=3

ProzessBereit Verklemmt Blockiert

Page 18: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

18

Beispiel

2. Scheduler starten

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

9. Scheduler starten

10.Deadlocks bei Kanälen 3,4 beheben

11.Scheduler starten

12.Deadlocks bei Kanälen 3,4 beheben

P2

P1

P3

P4 3311

1 111

11

k=3

k=1 k=1 k=2 k=3

ProzessBereit Verklemmt Blockiert

Page 19: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

19

Beispiel

3. Prozesse finden

4. Deadlock bei Kanal 1 beheben

5. Scheduler starten

6. Deadlock bei Kanal 3 beheben

7. Scheduler starten

8. Deadlocks bei Kanälen 3,4 beheben

9. Scheduler starten

10.Deadlocks bei Kanälen 3,4 beheben

11.Scheduler starten

12.Deadlocks bei Kanälen 3,4 beheben

13.Scheduler starten

P2

P1

P3

P4 3311

1 111

11

k=4

k=1 k=1 k=3 k=3

ProzessBereit Verklemmt Blockiert

Page 20: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

20

Bewertung des Verfahrens

Verfahren findet bei beschränkten Programmen eine

Ausführungsreihenfolge, die mit beschränktem Speicher auskommt

Andere Scheduler, die bereits Eigenschaft 1 erfüllen, sind kompatibel

Reagiert im Konfliktfall wie gewünscht

Möglicherweise große Anzahl an Stops

Parallelität wird durch beschränkte Kanäle behindert

Page 21: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

21

Zusammenfassung

• Ein Kahn-Prozess-Netzwerk ist einfaches aber mächtiges und vielseitig verwendbares Modell

• Allerdings kann es programmtechnisch oder durch ungeschicktes Scheduling zu unbeschränktem Hauptspeicherbedarf kommen

• Im Spezialfall synchroner-Datenfluß-Netzwerke können offline bzw. statische Scheduling-Verfahren verwendet werden

• Für den allgemeinen Fall ist es mittels einer Netztransformation und eines geeigneten Schedulers möglich ein beschränktes Programm mit endlichem Speicher auszuführen.

Page 22: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

22

Fragen

Page 23: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

23

Page 24: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

24

Page 25: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

25

Beschreibung Synchrone-Datenfluß-Netzwerke 1

• Synchronous data flow (SDF) differs from traditional data flow in that the amount of data produced and consumed by a data flow node is specified a priori for each input and output. This is equivalent to specifying the relative sample rates in signal processing system. This means that the scheduling of SDF nodes need not be done at runtime, but can be done at compile time (statically), so the runtime overhead evaporates.

(Quelle: http://ptolemy.eecs.berkeley.edu/publications/papers/87/staticscheduling/)

Page 26: Universität Karlsruhe (TH) Chair for Embedded Systems SS 2006 Scheduling von Prozess-Netzwerken Axel Sanwald CES - Chair for Embedded Systems Department.

Universität Karlsruhe (TH)

Eingebettete Systeme in Sensornetzwerken

Axel SanwaldChair for Embedded Systems

SS 2006

26

Beschreibung Synchrone-Datenfluß-Netzwerke II

• A synchronous dataflow actor can consume a fixed positive number of tokens from each input channel and produces a fixed positive number of tokens at each output channel. Let the state of the graph be represented by the sequence consisting of the number of tokens present on each channel. Then the state transition graph of the network would have transitions between the states represented by the firings of the actors. We want a finite sequence of firings, called a finite complete cycle, which leaves the network in the same state. This sequence can be repeated forever and hence the graph can be executed in bounded memory. The are a number of advantages of this.

1. Scheduling can be done statically.

2. The buffer sizes for the channels can be computed in advance.

3. Deadlocks can be detected.(Quelle: http://ptolemy.eecs.berkeley.edu/~eal/ee290n/lec19.scribe/node3.html)