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

Post on 05-Apr-2015

111 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

time-triggered

E

P

A

Sensor-eingaben

Programm

AusgabeAktorik

konzentriertes System ohne Bus

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2gemeinsamer

Speicher

Systembus 1 Systembus 2

konzentriertes System mit Bus

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2gemeinsamer

Speicher

Systembus

verteiltes System

Prozessor 1 Prozessor 2

Speicher 1 Speicher 2

Feldbus, Ethernet

parallele Ausführung

A1 A2 A3

B1 B2

Prozessor 1

Prozessor 2

nebenläufig unteilbar

A1 A2 A3 B1 B2

B1 B2 A1 A2 A3

Variante 1

Variante 2

nebenläufig teilbar

B1 B2A1 A2 A3eine möglicheVariante

Produzenten-Konsumenten

ProduzentProduzent KonsumentKonsument

LesenLesen BuchungBuchung DruckenDrucken3 Tasks

Strichcode Zettel

Auftraggeber-Auftragnehmer

AuftraggeberAuftraggeber AuftragnehmerAuftragnehmer

BordcomputerBordcomputer VerkehrsrechnerVerkehrsrechner

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)

Bereitliste

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

Stellung in Listegibt augenblicklichePriorität an

Zuteilung zu Prozessor

Warteschlange

Planung niedrige Ebene

laufendbereitStart

Zuteilungdes Prozessors

Entzug desProzessor

Beendigung

Mehrstufige Warteschlangen

123

Priorität derWarteschlange

Prozessor

Warteschlangen derjeweiligen Priorität

5 3 1

24

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

Earliest Deadline First 1

P3

P2

P1

a1

a2

a3

s1

s2

s3

1 4 t

Antwortzeit ai

Spielraum si

Deadline

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

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

Beispiel 1

P3

P2

P1Laufzeit

spätesterEndzeitpunkt

Zeit

Einzuplanende Prozesse

Beispiel 1

P3

P2 P1

Zeit

Prozessor 1

Prozessor 2

Verletzung derAntwortzeit

Prozessorvergabenach Antwortzeit

P3P2

P1

Zeit

Prozessor 1

Prozessor 2

Prozessorvergabenach Spielraum

Beispiel 2

P7

P6

LaufzeitspätesterEndzeitpunkt

Zeit

Einzuplanende Prozesse

P1

P2

P3

P4

P5frühesterStartzeitpunkt

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

Interrupts versus Sampling

Wasser

Sensor

Wand

Synchronisationsbedarf

Zahlungsart

Betrag

Zahlungsart= Scheck?

Ein_Schecks = Ein_Schecks + Betrag

Ein_Gesamt = Ein_Gesamt + Betrag

Stop

nein

ja

Input

Input

Synchronisationsbedarf

Ein_Gesamt

Ein_Gesamt > 0nein

ja

%100_

_

GesamtEin

SchecksEin

Stop

Output

Output

Petri-Netze ohne Marken

Stellen(places) Transition

Eingansstellen mitgerichteter Kantezu einer Transition

Ausgangsstellen, einegerichteter Kante führtvon einer Transition weg

Isolierte Teilnetze

Materialverwaltung

Bestellung

Bestellannahme Lieferauftrag Auslieferung

Kanal

LieferfertigeWaren

Produktionsauftrag Produktion Lager

Instanz

Materialverwaltung

LieferauftragLieferschein-

erstellung

Lieferschein VersendenLieferfertige

Waren

Lager Verpacken verpackteProdukte

Schalten einer Transition

= Marken

a) vorher b) nachher

Kapazität und Gewichtung

Kapazität = 5

Gewichtung = 4

Schalten mit gewichteten Kanten

a) vorher b) nachher

2

3

2

3

nichtschaltende Transitionen

Markenmangel

2

Markenüberfluss

1

lebendig und todesgefährdet

lebendig todesgefährdet

Synchronisation

t1

t2

t3

t4

Synchronisation

t1

t2

t3

t4

Einseitige Synchronisation

t1 t2

t3

Gegenseitiger Ausschluss

t2

t3

t6

t5

t1

t4

crit

crit

end crit

end crit

kritischer AbschnittSemaphor/Schlüssel zu crit

Buchungssystem

Lesen Buchen Drucken

Pufferspeicher Datenfluss

Lesen

Ablegen

nMarken

leer

voll

Eingabepuffermit n freie Plätze

Abnehmen

Buchen

Ablegen

mMarken

leer

voll

Ausgabepuffermit m freie

Plätze

Abnehmen

Drucken

Eintritt Eintritt

Austritt Austritt

S

k.A. k.A.unkritischerAbschnitt

unkritischerAbschnitt

Leser Schreiber

3 Leser 3 Schreiber

Schlüssel,Semaphor

3

3

Speisende Philosophen

P4

P3

P2P1

P0S0 S4

S3S1

S2

P0

P1

P2P3

P4 S0 S1

S2S3S4

Denken Speisen

Speisende Philosophen

Philosophen

freie Stäbchen

22

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)

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

band1 ausleihen band2 ausleihen

beide Bändezurückgeben

band2ausleihen

band1ausleihen

processStudent 1

band1

Bücher ausleihen

band2

processStudent 2

zyklischer BM Graph

band1 band2

Student 2

Student 1hat band1und will ihn behalten

will band2

BM

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

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

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.

Ansatz 2

krit2 = true

krit1 = true

ja

nein

P1

P1 im k.A.

krit1 = true

krit2 = true

ja

nein

P2

P2 im k.A.

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

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

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

Flugzeug mit 3 Toiletten

laufendbereit

blockiert anSemaphor S1

blockiert anSemaphor Sn

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

Leser

lz_schutz • P

l_zähler = l_zähler - 1

l_zähler = 0? ls_ausschluss • V

lz_schutz • V

ja

nein

Schreiber

ls_ausschluss • V

ls_ausschluss • P

Leser im k.A.

Schreiber

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)

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

Leser mit l_vorhalt

l_vorhalt • P

l_vorhalt • V

k.A.

Leser

l_halt • V

bisheriger Algorithmus

l_halt • P

Warteschalengenhüllen

l_vorhalt

l_halt

ls_ausschluss

k.A.

Schutzhüllen/Warteschlangen

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

Soll-Verlauf

t

C

B

A

priority

Ist-Verlauf

t

C Aohne B

t

C Amit B B C

priority inversion

an der Stelle meldete Watchdogtimerimmer: A nicht beendet

Priority Inheritance

t

C

A C mit Priorität von A

top related