Post on 05-Apr-2015
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
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