time-triggered E Sensor- eingaben P Programm A Ausgabe Aktorik
konzentriertes System ohne Bus Prozessor 1 Prozessor 2 Systembus 1 Systembus 2 Speicher 1 gemeinsamer Speicher Speicher 2
konzentriertes System mit Bus Prozessor 1 Prozessor 2 Systembus Speicher 1 gemeinsamer Speicher Speicher 2
verteiltes System Prozessor 1 Prozessor 2 Speicher 1 Speicher 2 Feldbus, Ethernet Prozessor 2 Speicher 1 Speicher 2
parallele Ausführung Prozessor 1 A1 A2 A3 Prozessor 2 B1 B2
nebenläufig unteilbar Variante 1 A1 A2 A3 B1 B2 Variante 2 B1 B2 A1 A2 A3
nebenläufig teilbar eine mögliche Variante B1 A1 A2 B2 A3
Produzenten-Konsumenten Lesen Buchung Drucken 3 Tasks Strichcode Zettel
Auftraggeber-Auftragnehmer Bordcomputer Verkehrsrechner
Zustände von Prozessen unbekannt Anmelden (wird erschaffen, läuft aber noch nicht) Abmeldung existent beendet Neustart Start Zuteilung des Prozessors durch vollständige Abarbeitung bereit laufend Entzug des Prozessor wartet auf Prozessor in Warteschlange Eigenblockade (BM nicht zur Verfügung außer Prozessor) Fremdblockade (BM außer Prozessor fehlt) blockiert
Bereitliste Stellung in Liste gibt augenblickliche Priorität an Zuteilung zu Prozessor 1. Prozess G 2. Prozess J 3. Prozess B 4. Prozess M Stellung in Liste gibt augenblickliche Priorität an Warteschlange
Planung niedrige Ebene Zuteilung des Prozessors Start Beendigung bereit laufend Entzug des Prozessor
Mehrstufige Warteschlangen Prozessor 1 2 3 Priorität der Warteschlange 2 4 Warteschlangen der jeweiligen Priorität 5 3 1
Zeiten bei Ausführung eines Prozesses Restlaufzeit L(t0) Spielraum S = tZ - tE Restantwortzeit a(t0) Laufzeit L = tE – tS Zeit tA tS t0 tE tZ frühester tatsächlicher tatsächlicher Endzeitpunkt spätester Endzeitpunkt (Deadline) Startzeitpunkt
Earliest Deadline First 1 P1 Antwortzeit ai a2 s2 P2 Spielraum si a3 s3 Deadline P3 1 4 t
Earliest Deadline First 2 ai 6 5 a1 4 a2 3 2 a3 1 1 2 3 4 5 6 t Prozessor- belegung P3 P2 P1 1 2 3 4 5 6 t
Least Laxity si 4 a1 3 a3 2 a2 1 1 2 3 4 5 6 t Prozessor- belegung P2
Beispiel 1 P1 P2 P3 Laufzeit Einzuplanende Prozesse spätester Endzeitpunkt P2 P3 Zeit
Beispiel 1 P2 P1 P3 P1 P2 P3 Prozessor 1 Prozessor 2 Prozessor 1 Verletzung der Antwortzeit Prozessor 1 P2 P1 Prozessorvergabe nach Antwortzeit Prozessor 2 P3 Zeit Prozessor 1 P1 Prozessorvergabe nach Spielraum Prozessor 2 P2 P3 Zeit
Beispiel 2 P1 P2 P3 P4 P5 P6 P7 Laufzeit Zeit spätester Endzeitpunkt Einzuplanende Prozesse P4 frühester Startzeitpunkt P5 P6 P7 Zeit
Beispiel 2 P1 P3 P4 P3 P7 P2 P5 P6 P1 P2 P4 P6 P2 P3 P5 P7 Prozessor 1 Verletzung der Antwortzeit Prozessor 1 P1 P3 P4 P3 P7 Prozessorvergabe nach Spielraum Prozessor 2 P2 P5 P6 Zeit Prozessor 1 P1 P2 P4 P6 Zeitgerechte Prozessorvergabe (nicht algorithmisch ermittelt) Prozessor 2 P2 P3 P5 P7 Zeit
Interrupts versus Sampling Sensor Wasser Wand
Synchronisationsbedarf Input Zahlungsart Input Betrag Zahlungsart = Scheck? nein ja Ein_Schecks = Ein_Schecks + Betrag Ein_Gesamt = Ein_Gesamt + Betrag Stop
Synchronisationsbedarf Ein_Gesamt Output Ein_Gesamt > 0 nein ja Stop Output
Petri-Netze ohne Marken Stellen (places) Transition Eingansstellen mit gerichteter Kante zu einer Transition Ausgangsstellen, eine gerichteter Kante führt von einer Transition weg
Isolierte Teilnetze
Materialverwaltung Lieferfertige Waren Bestellannahme Lieferauftrag Auslieferung Kanal Bestellung Instanz Produktionsauftrag Produktion Lager
Materialverwaltung Lieferfertige Waren Lieferschein Versenden Lieferauftrag Lieferschein- erstellung Lager Verpacken verpackte Produkte
Schalten einer Transition = Marken a) vorher b) nachher
Kapazität und Gewichtung
Schalten mit gewichteten Kanten 3 3 2 2 a) vorher b) nachher
nichtschaltende Transitionen 1 2 Markenmangel Markenüberfluss
lebendig und todesgefährdet
Synchronisation t2 t1 t4 t3
Synchronisation t2 t1 t4 t3
Einseitige Synchronisation
Gegenseitiger Ausschluss crit end crit t1 t3 t4 t6 crit end crit t5 Semaphor/ Schlüssel zu crit kritischer Abschnitt
Buchungssystem Lesen Buchen Drucken Pufferspeicher Datenfluss
Lesen Buchen leer n Marken Abnehmen Ausgabepuffer mit m freie Plätze voll leer m Marken Abnehmen Ablegen Buchen Eingabepuffer mit n freie Plätze voll Drucken Ablegen
Leser Schreiber Eintritt Eintritt 3 S unkritischer Abschnitt k.A. k.A. 3 Schlüssel, Semaphor 3 Leser 3 Schreiber Austritt Austritt
Speisende Philosophen
P0 Denken Speisen P4 P1 S0 S1 S4 S3 S2 P3 P2
Speisende Philosophen 2 2 freie Stäbchen
unterscheidbare Marken 8 5 3 17 Schaltbedingung (firing condition) 5 3 17 x x x = 2y z x = 2y z 20 y y 1 4 10 z = 2x + y z = 2x + y 1 10 Schaltwirkung (firing result) a) vorher b) nachher
Speisende Philosophen 1 2 3 4 i i st1 = i st2 = (i+1) mod 5 st1 = i st2 = (i+1) mod 5 1 2 3 4 st1, st2 st1, st2 freie Stäbchen
Bücher ausleihen band1 ausleihen band2 ausleihen band1 band2 band2 beide Bände zurückgeben process Student 1 process Student 2
zyklischer BM Graph band1 band2 BM Student 2 Student 1 hat band1 und will ihn behalten will band2
Bedarfsangabe Prozess P2 P2 läuft P1 bereit band1 P2 fordert band2 an bei Knick Prozesswechsel gleichzeitiger Ablauf Prozess P1 band2 P1 fordert band1 an hier beginnt kritischer Bereich, da darf man nicht rein, sonst tot P1 läuft, P2 bereit
Implementation besetzt = true besetzt = true P1 P2 ja ja nein nein disable Interrupt P1 P2 besetzt = true besetzt = true ja ja nein nein besetzt = true besetzt = true enable Interrupt P1 im k.A. P2 im k.A.
Ansatz 1 P1 P2 k.A. P2 krit2 = true krit1 = true ja ja nein nein krit1 P1 im k.A. P2 im k.A.
Ansatz 2 P1 P2 krit1 = true krit2 = true krit2 = true krit1 = true ja nein nein P1 im k.A. P2 im k.A.
Ansatz 3 P2 P1 krit2 = true krit1 = true ja krit1 = true ja krit2 = false krit1 = false nein nein P2 im k.A. P1 im k.A. warten warten krit2 = true krit1 = true
Ansatz 4 P1 P2 ändert nach Rückkehr favorit auf 1 k.A. favorit = 2 ja ja P2 nein nein favorit P1 im k.A. P2 im k.A. wartet bis favorit = 1 P1 favorit = 2 favorit = 1
Ansatz 5 P1 krit1 = true k.A. 1 krit2 = true ja favorit = 1 nein nein krit1 = false P1 im k.A. 2 favorit ≠ 1 ja favorit = 2 nein krit1 = false krit1 = true
Flugzeug mit 3 Toiletten bereit laufend blockiert an Semaphor S1 blockiert an Semaphor Sn
Leser Leser lz_schutz • P l_zähler = l_zähler + 1 ja l_zähler = 1? ls_ausschluss • P nein lz_schutz • V Leser im k.A.
Leser lz_schutz • P l_zähler = l_zähler - 1 ja l_zähler = 0? ls_ausschluss • V nein lz_schutz • V
Schreiber Schreiber ls_ausschluss • P Leser im k.A. ls_ausschluss • V
zweites Leser-Schreiber Problem Schreiber (grob) l_halt • P 1. Schreiber → l_halt • P ls_ausschluss • P erster Teil des bisherigen Algorithmus k.A. l_halt • V ls_ausschluss • V k.A. letzter Schreiber → l_halt • V restlicher Teil des bisherigen Algorithmus nötig: Schreibzähler und Semaphor, der Schreibzähler schützt
Schreiber sz_schutz • P s_zähler = s_zähler + 1 ja l_zähler = 1? l_halt • P nein sz_schutz • V ls_ausschluss • P k.A.
bisheriger Algorithmus Leser mit l_vorhalt Leser l_vorhalt • P l_halt • P bisheriger Algorithmus l_halt • V l_vorhalt • V k.A.
Warteschalengenhüllen l_vorhalt l_halt ls_ausschluss k.A. Schutzhüllen/ Warteschlangen
Verschiedene Tasks frequent, high priority infrequent, low priority very infrequent, medium priority Bus management task Meteorological data gathering task Communication task Task A Task C Task B Information Bus
Soll-Verlauf priority A B C t
Ist-Verlauf ohne B C A priority inversion mit B C B C A t t an der Stelle meldete Watchdogtimer immer: A nicht beendet
Priority Inheritance A C mit Priorität von A C t