time-triggered e p a sensor- eingaben programm ausgabe aktorik

66
time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Upload: haydn-gerold

Post on 05-Apr-2015

111 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

time-triggered

E

P

A

Sensor-eingaben

Programm

AusgabeAktorik

Page 2: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

konzentriertes System ohne Bus

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2gemeinsamer

Speicher

Systembus 1 Systembus 2

Page 3: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

konzentriertes System mit Bus

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2gemeinsamer

Speicher

Systembus

Page 4: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

verteiltes System

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2

Feldbus, Ethernet

Page 5: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

parallele Ausführung

A1 A2 A3

B1 B2

Prozessor 1

Prozessor 2

Page 6: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

nebenläufig unteilbar

A1 A2 A3 B1 B2

B1 B2 A1 A2 A3

Variante 1

Variante 2

Page 7: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

nebenläufig teilbar

B1 B2A1 A2 A3eine möglicheVariante

Page 8: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Produzenten-Konsumenten

ProduzentProduzent KonsumentKonsument

LesenLesen BuchungBuchung DruckenDrucken3 Tasks

Strichcode Zettel

Page 9: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Auftraggeber-Auftragnehmer

AuftraggeberAuftraggeber AuftragnehmerAuftragnehmer

BordcomputerBordcomputer VerkehrsrechnerVerkehrsrechner

Page 10: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Zustände von Prozessen

unbekannt

beendet

laufend

existent

bereit

blockiert

Abmeldung

durch vollständigeAbarbeitung

Neustart

Start

Anmelden (wird erschaffen,läuft aber noch nicht)

Zuteilungdes Prozessors

Entzug desProzessor

wartet aufProzessor inWarteschlange

Eigenblockade(BM nicht zur Verfügungaußer Prozessor)

Fremdblockade (BM außer Prozessor fehlt)

Page 11: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Bereitliste

1. Prozess G2. Prozess J3. Prozess B4. Prozess M

Stellung in Listegibt augenblicklichePriorität an

Zuteilung zu Prozessor

Warteschlange

Page 12: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Planung niedrige Ebene

laufendbereitStart

Zuteilungdes Prozessors

Entzug desProzessor

Beendigung

Page 13: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Mehrstufige Warteschlangen

123

Priorität derWarteschlange

Prozessor

Warteschlangen derjeweiligen Priorität

5 3 1

24

Page 14: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Zeiten bei Ausführung eines Prozesses

Laufzeit L = tE – tS

Restlaufzeit L(t0)

Restantwortzeit a(t0)

Spielraum S = tZ - tE

tA tS t0 tE tZ

frühester tatsächlicherStartzeitpunkt

tatsächlicherEndzeitpunkt

spätester Endzeitpunkt(Deadline)

Zeit

Page 15: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Earliest Deadline First 1

P3

P2

P1

a1

a2

a3

s1

s2

s3

1 4 t

Antwortzeit ai

Spielraum si

Deadline

Page 16: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Earliest Deadline First 2

1 4 t

1

4

2

3

5

6

2 3 5 6

a1

a2

a3

1 4 t2 3 5 6

ai

Prozessor-belegung

P3 P2 P1

Page 17: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Least Laxity

1 4 t

1

4

2

3

2 3 5 6

a1

a2

a3

1 4 t2 3 5 6

si

Prozessor-belegung

P3P2 P1P2 P1

Page 18: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Beispiel 1

P3

P2

P1Laufzeit

spätesterEndzeitpunkt

Zeit

Einzuplanende Prozesse

Page 19: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Beispiel 1

P3

P2 P1

Zeit

Prozessor 1

Prozessor 2

Verletzung derAntwortzeit

Prozessorvergabenach Antwortzeit

P3P2

P1

Zeit

Prozessor 1

Prozessor 2

Prozessorvergabenach Spielraum

Page 20: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Beispiel 2

P7

P6

LaufzeitspätesterEndzeitpunkt

Zeit

Einzuplanende Prozesse

P1

P2

P3

P4

P5frühesterStartzeitpunkt

Page 21: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Beispiel 2

P2

P1

Zeit

Prozessor 1

Prozessor 2

Verletzung derAntwortzeit

Prozessorvergabenach Spielraum

P3P2 Zeit

Prozessor 1

Prozessor 2

ZeitgerechteProzessorvergabe(nicht algorithmischermittelt)

P3 P4

P5

P3

P6

P7

P1 P2 P4

P5

P6

P7

Page 22: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Interrupts versus Sampling

Wasser

Sensor

Wand

Page 23: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Synchronisationsbedarf

Zahlungsart

Betrag

Zahlungsart= Scheck?

Ein_Schecks = Ein_Schecks + Betrag

Ein_Gesamt = Ein_Gesamt + Betrag

Stop

nein

ja

Input

Input

Page 24: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Synchronisationsbedarf

Ein_Gesamt

Ein_Gesamt > 0nein

ja

%100_

_

GesamtEin

SchecksEin

Stop

Output

Output

Page 25: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Petri-Netze ohne Marken

Stellen(places) Transition

Eingansstellen mitgerichteter Kantezu einer Transition

Ausgangsstellen, einegerichteter Kante führtvon einer Transition weg

Page 26: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Isolierte Teilnetze

Page 27: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Materialverwaltung

Bestellung

Bestellannahme Lieferauftrag Auslieferung

Kanal

LieferfertigeWaren

Produktionsauftrag Produktion Lager

Instanz

Page 28: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Materialverwaltung

LieferauftragLieferschein-

erstellung

Lieferschein VersendenLieferfertige

Waren

Lager Verpacken verpackteProdukte

Page 29: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Schalten einer Transition

= Marken

a) vorher b) nachher

Page 30: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Kapazität und Gewichtung

Kapazität = 5

Gewichtung = 4

Page 31: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Schalten mit gewichteten Kanten

a) vorher b) nachher

2

3

2

3

Page 32: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

nichtschaltende Transitionen

Markenmangel

2

Markenüberfluss

1

Page 33: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

lebendig und todesgefährdet

lebendig todesgefährdet

Page 34: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Synchronisation

t1

t2

t3

t4

Page 35: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Synchronisation

t1

t2

t3

t4

Page 36: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Einseitige Synchronisation

t1 t2

t3

Page 37: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Gegenseitiger Ausschluss

t2

t3

t6

t5

t1

t4

crit

crit

end crit

end crit

kritischer AbschnittSemaphor/Schlüssel zu crit

Page 38: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Buchungssystem

Lesen Buchen Drucken

Pufferspeicher Datenfluss

Page 39: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Lesen

Ablegen

nMarken

leer

voll

Eingabepuffermit n freie Plätze

Abnehmen

Buchen

Ablegen

mMarken

leer

voll

Ausgabepuffermit m freie

Plätze

Abnehmen

Drucken

Page 40: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Eintritt Eintritt

Austritt Austritt

S

k.A. k.A.unkritischerAbschnitt

unkritischerAbschnitt

Leser Schreiber

3 Leser 3 Schreiber

Schlüssel,Semaphor

3

3

Page 41: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Speisende Philosophen

P4

P3

P2P1

P0S0 S4

S3S1

S2

Page 42: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

P0

P1

P2P3

P4 S0 S1

S2S3S4

Denken Speisen

Page 43: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Speisende Philosophen

Philosophen

freie Stäbchen

22

Page 44: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

unterscheidbare Marken

x = 2y

142 4

10

a) vorher b) nachher

y

z

x

85 317

z = 2x + y

x = 2y

142 10

20y

z

x5 317

z = 2x + y

Schaltbedingung(firing condition)

Schaltwirkung(firing result)

Page 45: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Speisende Philosophen

st1 = ist2 = (i+1) mod 5

01 2 3

4

01 2 3

4

Philosophen

freie Stäbchen

i

st1, st2

st1 = ist2 = (i+1) mod 5

i

st1, st2

Page 46: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

band1 ausleihen band2 ausleihen

beide Bändezurückgeben

band2ausleihen

band1ausleihen

processStudent 1

band1

Bücher ausleihen

band2

processStudent 2

Page 47: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

zyklischer BM Graph

band1 band2

Student 2

Student 1hat band1und will ihn behalten

will band2

BM

Page 48: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Bedarfsangabe

band1P2 fordertband2 an

Prozess P2

P1 fordert band1 an

band2gleichzeitiger AblaufProzess P1

P2 läuftP1 bereit

P1 läuft, P2 bereit

bei KnickProzesswechsel

hier beginnt kritischer Bereich,da darf man nicht rein, sonst tot

Page 49: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Implementation

besetzt = true

besetzt = true

ja

nein

P1

P1 im k.A.

besetzt = true

besetzt = true

ja

nein

P2

P2 im k.A.

disableInterrupt

enableInterrupt

Page 50: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ansatz 1

krit2 = true

krit1 = true

ja

nein

P1

P1 im k.A.

krit1 = true

krit2 = true

ja

nein

P2

P2 im k.A.

krit1 krit2

P1

P2

k.A.

Page 51: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ansatz 2

krit2 = true

krit1 = true

ja

nein

P1

P1 im k.A.

krit1 = true

krit2 = true

ja

nein

P2

P2 im k.A.

Page 52: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ansatz 3

krit2 = true

krit1 = true

ja

nein

P1

P1 im k.A.

krit1 = true

krit2 = true

ja

nein

P2

P2 im k.A.krit1 = false

warten

krit1 = true

krit2 = false

warten

krit2 = true

Page 53: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ansatz 4

favorit = 2

favorit = 2

ja

nein

P1

P1 im k.A.

favorit = 1

favorit = 1

ja

nein

P2

P2 im k.A.

favorit

P1

P2

k.A.

wartet bisfavorit = 1

ändert nachRückkehrfavorit auf 1

Page 54: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ansatz 5

favorit

k.A.

krit1 krit2

krit2 = true

krit1 = true

ja

nein

P1

P1 im k.A. krit1 = false

krit1 = true

favorit = 1

favorit ≠ 1

nein

favorit = 2

krit1 = false

ja

nein

1

2

Page 55: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Flugzeug mit 3 Toiletten

laufendbereit

blockiert anSemaphor S1

blockiert anSemaphor Sn

Page 56: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Leser

lz_schutz • P

l_zähler = l_zähler + 1

l_zähler = 1? ls_ausschluss • P

lz_schutz • V

ja

nein

Leser im k.A.

Leser

Page 57: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Leser

lz_schutz • P

l_zähler = l_zähler - 1

l_zähler = 0? ls_ausschluss • V

lz_schutz • V

ja

nein

Page 58: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Schreiber

ls_ausschluss • V

ls_ausschluss • P

Leser im k.A.

Schreiber

Page 59: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

zweites Leser-Schreiber Problem

l_halt • P

erster Teil desbisherigen Algorithmus

l_halt • V

k.A.

restlicher Teil desbisherigen Algorithmus

1. Schreiber → l_halt • P

ls_ausschluss • P

k.A.

ls_ausschluss • V

letzter Schreiber → l_halt • V

nötig: Schreibzähler und Semaphor,der Schreibzähler schützt

Leser Schreiber (grob)

Page 60: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Schreibersz_schutz • P

s_zähler = s_zähler + 1

l_zähler = 1? l_halt • P

sz_schutz • V

ja

nein

k.A.

ls_ausschluss • P

Page 61: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Leser mit l_vorhalt

l_vorhalt • P

l_vorhalt • V

k.A.

Leser

l_halt • V

bisheriger Algorithmus

l_halt • P

Page 62: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Warteschalengenhüllen

l_vorhalt

l_halt

ls_ausschluss

k.A.

Schutzhüllen/Warteschlangen

Page 63: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Verschiedene Tasks

Bus managementtask

Meteorologicaldata gathering task

Communicationtask

Information Bus

Task A Task C Task B

frequent, high priority

infrequent, low priority

very infrequent, medium priority

Page 64: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Soll-Verlauf

t

C

B

A

priority

Page 65: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Ist-Verlauf

t

C Aohne B

t

C Amit B B C

priority inversion

an der Stelle meldete Watchdogtimerimmer: A nicht beendet

Page 66: Time-triggered E P A Sensor- eingaben Programm Ausgabe Aktorik

Priority Inheritance

t

C

A C mit Priorität von A