Upload
duonghanh
View
215
Download
3
Embed Size (px)
Citation preview
��
��Aspekte
• Prozessdatenverarbeitung – PDV
• Prozessleitsystem – PLS
• Prozessautomatisierungssystem – PAS
1
��
��Leittechnik ?
Verfahrensleittechnik FertigungsleittechnikProzessleittechnik (Elektroindustrie,
(Chemische Industrie) Maschinenbau)↘ ↙
ProduktionsleittechnikSystem Control
AutomationAutomatisierungs-System
2
��
��Ziel ist Vollautomatisierung
• hohere Arbeitskultur, keine raumliche und zeitlicheBindung des Menschen
• hohere sensorische, aktorische, kommunikative Lei-stungsfahigkeit des Menschen
• hohere Sicherheit der Anlagen
• hohere Wirtschaftlichkeit (Produktivitat, Qualitat,Einsparung von Energie und Rohstoffen)
• komplizierte Prozessverflechtungen
• hohere Abhangigkeit von Technologie
4
��
��Großenordnungen
• (deeply) embedded, integrierte Systeme
• Prozessrechner (single board computer)
• Netzwerk (network)
5
��
��Embedded Systeme
• Automatisiert ein spezifisches Gerat.
• Sind uberall. Jeder benutzt sie taglich.
• 90% aller Software
•Mikroprozessor (CPU, RAM, ROM, I/O-Ports, Timer)
6
��
��Einsatzbeispiele
• Computers Everywhere
• Steuerung von Walzwerken
• Automatisierung im Zementwerk
• Chemische Verfahrenstechnik
• Steuerung von Hochregallagern
• Steuerung von Textilmaschinen
• Fertigungstechnik, Roboter
• Betriebsdatenerfassung
• Qualitatskontrolle
8
��
��Einsatzbeispiele
• Energietechnik
• Verkehrstechnik
• Automotive
• Avionics, Raumfahrt
• Laborautomatisierung
• Computer-Tomographie
• Verarbeitung von Biosignalen
• Patienten-Intensivuberwachung
• Militarische Anwendungen
9
��
��Prozessrechensystem
Nach DIN 66201 ist ein Prozessrechensystem eine Funkti-onseinheit zur prozessgekoppelten Verarbeitung von Pro-zessdaten, namlich zur Durchfuhrung boolescher, arithme-tischer, vergleichender, umformender, ubertragender undspeichernder Operationen.
10
��
��Automatisierungssystem
DIN 66201
• bedienungsfreundliche Schnittstelle zwischenMensch und Prozess
• Prozessdatenerfassung durch sensorische Glieder
• Datenverarbeitung
• Datenverwaltung
• Prozesssteuerung durch aktorische Glieder
• Kommunikation mit anderen Prozessen,Rechnersystemen
11
��
��Realzeitsystem
Nach DIN 44300 ist ein Realzeitsystem definiert als der Be-trieb eines Rechensystems, bei dem Programme zur Bear-beitung anfallender Daten standig betriebsbereit sind, der-art, dass die Verarbeitungsergebnisse innerhalb einer vor-gegebenen Zeitspanne (Antwortzeit) verfugbar sind. DieDaten konnen je nach Anwendungsfall nach einer zeitlichzufalligen Verteilung oder zu bestimmten Zeitpunkten an-fallen.
12
��
��Realzeitfahigkeit
Die fur die Aufgaben
• Alarmanalyse
•Messen (Messinstrument)
• Erfassen
• Verarbeiten (Berechnung von Steuergroßen)
• Ausgeben
• Steuern (Motorische Bewegung)
benotigte Zeit muss deutlich kleiner sein als dieProzesszeitkonstante bzw. endlich und vorhersagbar sein.
13
��
��Realzeitsystem
• nebenlaufig (concurrent)
• verteilt (distributed)
• echtzeitabhangig (real time dependent)
15
��
��Moderne Einsatzschwerpunkte
• Prozessoptimierung
• verbesserte Verfahrensfuhrung
• Kenngroßenberechnung
• gehobene Auswertung, Protokollierung und Archivierung
• Auswahl, Korrektur und Kommentierung von Daten
• Entwicklung von Herstellungsanleitungen und Rezepturen
• gehobene Produktionssteuerung
• Prozessvisualisierung auf Farbbildschirmen
• Integration von Expertensystem-Software
16
��
��Kopplung P–AS
Mensch↑ ↓
off line in line on line on lineopen loop closed loop
Automatisierungssystem↑ | ↑ | ↑ | ↑ |Mensch Mensch | Mensch | || ↓ | ↓ | ↓ | ↓
Prozess
18
��
��Prozess
• jeder Vorgang in der Zeit.
• ein Ablauf, Verlauf.
• der Ubergang eines Systems von einem Zustand in einen anderen.
• die zeitliche Veranderung eines Systems.
• das dynamische Verhalten eines Systems, bei dem eine Um-
formung, Transport und/oder Speicherung von Mate-
rie, Energie und Information stattfindet (DIN 66 201, DIN
19 222).
20
��
��Technischer Prozess
Ein technischer Prozess (DIN 66 201) ist ein Prozess,dessen physikalische Großen mit technischen Mittelnerfasst und beeinflusst werden.
Messwerterfassung mit Sensoren
Prozess-Beeinflussung mit Aktoren
21
��
��Drucker
Drucker Druckertreiber
Papier, Toner
bedrucktes Papier
Strom aus der Steckdose zu druckender Text
?
?
- �
23
��
��Prozessarten
Elementarprozess – Einzelprozess – Verbundprozess – Be-triebsprozess
Elementarprozess
Einzelprozess
*
Verbundprozess
*
Betriebsprozess
*
24
��
��Beispiel Großkuche
• Elementarprozesse: Heizen eines Kessels, Erfassung der Kesseltem-
peratur
• Einzelprozess: Regelung der Temperatur eines Kessels
• Verbundprozess: Mehrere Kessel und Kuchenmaschinen
• Betriebsprozess: Planung, Einkauf, Zubereitung, Verteilung der
Gerichte einer Großkuche
25
��
��Composite-Pattern
<<interface>>
Prozessdurchfuehren ()
ElementarProzess VerbundProzess
add (:Prozess)rmv (:Prozess)get (:int) :Prozess
*
26
Beispiel Farberei• Erfassen der Temperatur in ...
• Erfassen der Feuchtigkeit in ...
• Kuhlen der Luft in ...
• Regeln des Raumklimas im Lager
• Regeln der Raumtemperatur in ...
• Heizen der Luft in ...
• Trocknen der Luft in ...
• Regeln der Luftfeuchtigkeit in ...
• Regeln des Fabrikklimas
• Regeln des Raumklimas in der Fertigung
• Befeuchten der Luft in ...
• Regeln des Raumklimas im Versand
27
��
��Formale Beschreibung
Ein Prozess ist ein unendlicher Mealy-Automat mitfolgender algebraischer Struktur:
P = (U,X, Y, f, g)
28
��
��Art des Mediums
(auch Art des Verarbeitungsmaterials)
1. Materialprozesse
(a) Fertigungsprozesse
(b) Verarbeitungsprozesse
(c) Verfahrensprozesse
2. Energieprozesse
3. Informationsprozesse
29
��
��Technologisches Verfahren
(auch Verarbeitungsart)
1. Bearbeitungs- und Erzeugungsprozesse
2. Verteilungsprozesse
3. Ordnungs- und Aufbewahrungsprozesse
30
��
��Form des Stoffes
(auch Zustand des Verarbeitungsmaterials)
1. Fließgutprozesse (Mengenprozesse)
2. Stuckgutprozesse
31
��
��Zeitlicher Ablauf
1. Kontinuierliche Prozesse (Fließprozesse)
2. Diskontinuierliche Prozesse
(a) Chargenprozesse
(b) Stuckprozesse (Folgeprozesse)
32
��
��Prozesszustande
• Anfahren
• Betrieb
• Absetzen, Abfahren
•Wartung
• Gefahren- oder Fehlerzustande
33
��
��Allgemeine Aufgaben
• Steuerung und Uberwachung von verfahrenstechnischen Prozes-
sen: Raffinerie, Papiermuhle, Schokoladenfabrik
• Datenerfassung: Datenerfassung bei einer chemischen Reaktion,
Pipelinedaten,
• Qualitatskontrolle
• Kommunikation: Steuerung von Satelliten, Telefonsysteme
• Transaktionsorientierte Prozesse: Reservierungssysteme, Bankbu-
chungen, Aktienmarkt
• Flugsimulation und -kontrolle: Autopilot, Raketensteuerung, Fahr-
simulator
35
��
��Allgemeine Aufgaben
• Fabrikautomatisierung: Materialverfolgung, Teileproduktion,
Bandsteuerung, Robotik
• Transport: Zuglaufsystem, Ampelsysteme, Luftverkehrssteuerung
• Graphik und Mustererkennung: Bildverarbeitung, Videospiele,
CAD-Solid.Modelling
• Detektionssysteme: Radarsysteme, Alarmsysteme
• Strategische (wirtschaftliche und militarische) Systeme
36
��
��Einzelne Aufgaben
Datenerfassung Anzeigen
Messen Eingreifen
Zahlen Uberwachen
Dateneingabe Schutzen
Datenverarbeitung Auswerten
Stellen Aufzeichnen
Regeln Datenubertragen
Steuern Datenausgeben
Melden Optimieren
37
public void manageZustaende ()
{// Fur jeden Zustand wird eine ganzzahlige Variable definiert:
final int START_ZUSTAND = 1;
final int ZUSTAND_A = 2;
final int ZUSTAND_B = 3;
// ...
final int END_ZUSTAND = 0;
// Definition einer Zustandsvariablen und Initialisierung
// mit dem Startzustand:
int next = START_ZUSTAND;
// Definition einer Abbruchvariablen:
boolean weiter = true;
// do-while-switch-case Konstrukt, der von Zustand zu Zustand fuhrt:
while (weiter)
{switch (next)
{case START_ZUSTAND:
// ...
break;
case IRGEND_EIN_ZUSTAND:
// entry-Aktionen
// entry-Aktivitaten (nicht unterbrechbar)
// do-Aktivitaten (unterbrechbar)
// Warte auf ein Ereignis oder polle Ereignisse
// Analysiere das Ereignis
next = // nachster Zustand
// Breche gestartete do-Aktivitaten ab.
// exit-Aktionen und -Aktivitaten
break;
case END_ZUSTAND:
weiter = false;
// ...
break;
} // end switch
} // end while
} // end manageZustaende
40
��
��Struktur eines Zustands
1. Fuhre entry-Aktionen aus.
2. Fuhre entry-Aktivitaten (nicht unterbrechbar) aus.
3. Starte do-Aktivitaten (unterbrechbare).
4. Warte auf Ereignisse.
5. Analysiere die Ereignisse.
6. Bestimme den nachsten Zustand.
7. Breche gestartete do-Aktivitaten ab.
8. Fuhre exit-Aktionen und exit-Aktivitaten aus.
41
��
��Nebenlaufigkeit
•Concurrency
• Naran Gehani: A concurrent program specifies twoor more sequential programs that may beexecuted concurrently as parallel process.
• Das Gegenteil von ”nebenlaufig”ist ”sequentiell” oder ”seriell”.
• Parallelitat
•Quasi-Parallelitat
42
��
��Beispiel
Task D Prio 1 Task 1 Prio 2 Task 2 Prio 2 ... Task B Prio 3
Druck Signal1 Signal2 ... Berechnung
45
��
��Bemerkungen
1. Aus Grunden der Performanz und/oder Einfachheit des Systems
wird oft kein Nebenlaufigkeits-System verwendet.
2. Normalerweise ist ein gut entworfenes nebenlaufges Programm
trotz des Taskwechsel-Overheads performanter als ein rein sequen-
tielles Programm.
3. Die Verwendung von Mehrprozessor-Systemen (multi core)
wird zur Zeit sehr diskutiert. Teilweise werden sie aus Grunden
der Performanz schon eingesetzt, teilweise sind sie aus Grunden
der Sicherheit (noch?) regelrecht verboten.
46
��
��Parallele (binare) Algorithmen
Zerlegung in Teilaufgaben,die parallel bearbeitet werden konnen:
• Quicksort
• Fast-Fourier-Transformation
47
��
��Konzeptionelle Vereinfachung
Datenfluss-Konzept:
Datenfluss → Prog1 ⇒ Prog2 ⇀ Prog3 ⇁ Datenfluss
Aufgabe von Conway.Datenfluss-Diagramme nach deMarco.
48
��
��Multicomputer-Architekturen
• Transputer (Parallelitat auf einem Chip)
•Multiprozessor-Architektur(Parallelitat auf einem Board)
• Vernetzte Computer (Grid-Computing)
49
��
��Ausnutzen von Wartezeiten
Bei Uniprozessoren werden durch NebenlaufigkeitWartezeiten effizient ausgenutzt,um andere Benutzer zu bedienen.
50
��
��Nebenlaufigkeit als Modell
Die Systementwicklungsaufgabe erfordert die Nebenlaufig-keit als Modell. Die zu modellierende reale Welt bestehtaus parallel ablaufenden Prozessen.Die Uberwachung von mehreren Alarmen oder die Steue-rung eines Roboters mit mehreren Achsen wurde sequenti-ell zu stark verzahnten oder verschachtelten Programmenfuhren.
51
��
��Konkurrenz und Kooperation
Competition and Cooperation
Nebenlaufige Programme sind schwierig zu testen,da i.A. nicht deterministisch.Willkurliche Verschachtelung fuhrt zu”unendlich” vielen Szenarien.
52
��
��Beispiel
program increment;
const m = 8;
var n :integer;
procedure incr;
var i :integer;
begin
for i:= 1 to m do n := n + 1;
end;
begin (* Hauptprogramm *)
n := 0;
cobegin
incr; incr;
coend;
writeln (’Die Summe ist : ’, n);
end.
53
��
��Szenario
n Task1 Register i Task2 Register i00 Lade n 0 10 Lade n 0 10 Addiere 1 1 11 Speichere n 1 11 ... . 2. ... . .6 Lade n 6 76 Addiere 1 7 77 Speichere n 7 77 Addiere 1 1 11 Speichere n 1 11 Lade n 1 81 Lade n 1 2. ... . .8 Speichere n 8 88 Addiere 1 2 82 Speichere n 2 8
55
��
��Fehler bei nebenlaufigen Programmen
• Fehler treten auf wegen besonderer zeitlicher Verschach-telungen.
• Die Fehler passieren sehr selten.
• Die Fehler sind schwer zu reproduzieren und zu finden.
56
��
��Testen?
• theoretische Beweise
• extreme oder schwierige Szenarien,die ”theoretisch” durchgefuhrt werden.
• Keine Annahmen uber Zeitverhalten!Asynchron denken.Mehrprozessorsysteme mit echter Parallelitat imAuge behalten.
57
��
��Korrektheit
• sequentiell:
richtige Antwort in bekannten und Grenzfallen
• nebenlaufig: wie sequentiell
plus:
– Sicherkeit (safety)
← Problem des gegenseitigen Ausschlusses
(mutual exclusion, race condition)
– Lebendigkeit (liveness)
← Verklemmung (deadlock)
← Aussperrung (starvation)
← Verschworung (conspiracy, livelock)
58
��
��Strategien
• Entdeckung und Behebung von Verklemmungenbzw. Aussperrungen (detection and recovery)
•Verhinderung (prevention): Es gibt keineZustande, die die Lebendigkeit beeintrachtigen.
•Vermeidung (avoidance): Zustande, die die Le-bendigkeit beeintrachtigen, werden vermieden.
59
��
��Begriffe
• Lock: Ein Lock ist ein Konstrukt, um den Zugang zu einem kri-
tischen Bereich zu kontrollieren. Nur eine Task kann ein Lock fur
einen kritischen Bereich bekommen. Der Zugang ist exklusiv.
• Permit: Ein Permit kontrolliert ebenfalls den Zugang zu einem
kritischen Bereich. Allerdings konnen mehrere Tasks ein Permit
bekommen.
• Permit und Lock schließen sich gegenseitig aus.
• Block: Die genannten Konstrukte werden so eingesetzt, dass jede
Task vor Betreten eines kritischen Bereichs versucht, ein Lock oder
ein Permit zu bekommen. Ein Block zeigt an, dass die Task auf
die Zuteilung eines Locks oder eines Permits wartet.
60
��
��Synchronisationsmechanismen
Das Prozessmodell(Software und Kopplungshardware des Automatisierungs-systems) muss mit demrealen Prozesssynchronisiert werden, da die ”Uhren” unterschiedlichschnell laufen.
61
��
��Synchronisationsmechanismen
• Zeit
• Semaphor
• Bolt-Variable
•Monitor
• Rendezvous
•Kommunikationskanale
62
��
��Zeit als Synchronisationsmittel
ungeeignet, da reale Prozesse nicht deterministisch
Einhaltung von Zeit(-planen)sind wichtige Aufgabe der Automatisierung.
63
��
��Dijkstra: Semaphor
• Ganzzahlige Semaphorvariable s,
die nur einmal initialisiert werden kann,
und atomare, sich gegenseitig ausschließende Operationen:
• p (s) :
aufrufende Task wartet bis s > 0
s = s - 1
• v (s) :
s = s + 1
64
��
��Bemerkungen zu Semaphoren
Eine Task wird (eventuell) durch ein Semaphor ”gesperrt”.
Durch v (s) wird maximal eine Task ”freigegeben”.
Semaphoroperationen sind atomar (atomic,
primitive, unteilbar).
Das Abfragen des Wertes eines Semaphors ist nicht erlaubt.
65
��
��Bemerkungen zu Semaphoren
Verwaltet typischerweise ein Betriebsmittel unter ge-genseitigem Ausschluss.
init s = 1
Task A Task B Task C↓ ↓ ↓
p (s) p (s) p (s)
drucken drucken drucken
v (s) v (s) v (s)
↓ ↓ ↓
66
��
��Bemerkungen zu Semaphoren
p (s) v (s) Dijkstra
passeren verlaten Dijkstra
sperren freigeben
s.p () s.v () objekt-orientiert
request (s) release (s)
request (s) free (s)
wait (s) signal (s)
take (s) give (s)
semTake (s) semGive (s) VxWorks
down (s) up (s)
pend (s) post (s)
s.acquire () s.release () Java
Ereignis abwarten Ereignis senden Ereignissicht
67
��
��Bemerkungen zu Semaphoren
Semaphoroperationen sind atomar (atomic, primitive, unteil-
bar).
Ohne Semaphore heißt die Losung ”Dekkers Algorithmus” mit den
folgenden Nachteilen:
• Aktives Warten der Tasks.
• Bei mehr als zwei Tasks wird die Programmierung sehr unuber-
sichtlich.
68
��
��Bemerkungen zu Semaphoren
• Binare Semaphore: s = 0 oder s = 1
•Allgemeine oder counting Semaphore:s = 0 ... k
69
��
��Bemerkungen zu Semaphoren
Es gibt zahllose Varianten!
zum Beispiel atomares Sperren von mehreren Semaphorenoder Semaphoroperationen mit Timeoutoder additive Semaphoreoder Semaphorgruppen
70
��
��Semaphorproblematik
Vermischung zweier Problembereiche:
1. Problem des gegenseitigen Ausschlusses (compe-tition) =⇒ MUTEX-Semaphore
2. Synchronisationsproblem ”Warten auf ein Ereig-nis” und ”Senden eines Ereignisses” (Ereignis-sicht, cooperation)=⇒ ”normale” Semaphore
71
��
��MUTEX-Semaphore
• Verschachtelter Zugriff durch dieselbe Task
init MUTEX-Semaphor m = freigegeben;
p (m);
tu was Kritisches;
p (m);
tu noch mehr Kritisches;
v (m);
v (m);
• concept of ownership
• Prioritatsumkehr wird verhindert.
73
��
��Prioritats-Inversion
Problem? Losungen:
• Vererbung von Prioritat
• Priority Ceiling Protocol
74
��
��Verklemmung bei Semaphoren
init md = 1
init mp = 1
Task A Task B↓ ↓
p (md) p (mp)
p (mp) p (md)
drucken drucken
plotten plotten
v (md) v (mp)
v (mp) v (md)
↓ ↓
75
��
��Ablauf-Diagramm
Festlegung der Reihenfolge von Aktivitaten, die in unter-schiedlichen Tasks durchgefuhrt werden.
Vermeidung von race conditions
5
76
Ablauf-Diagramm
Task 1Aktivitat 1
Task 2Aktivitat 2
Task 3Aktivitat 3
Task 4Aktivitat 4
Task 5Aktivitat 5b
Task 5Aktivitat 5a
Task 6Aktivitat 6
Task 7Aktivitat 7
s12
s13
s24
s46
s36
s65
s7
s51
77
Ablaufe
Task 1: Task 2: Task 3:
// ... // ... // ...
p (s51) p (s12) p (s13)
Aktivitat 1 Aktivitat 2 Aktivitat 3
v (s12) v (s24) v (s36)
v (s13) // ... // ...
// ... // ... // ...
Task 4: Task 5: Task 6: Task 7:
// ... // ... // ... // ...
p (s24) p (s65) p (s36) p (s7)
Aktivitat 4 Aktivitat 5a p (s46) Aktivitat 7
v (s46) v (s7) Aktivitat 6 // ...
// ... Aktivitat 5b v (s65) // ...
// ... v (s51) v (s7) // ...
78
Ablaufe mit Ausschluss
Task 1Aktivitat 1
Task 2Aktivitat 2
Task 3Aktivitat 3
Task 4Aktivitat 4
Task 5Aktivitat 5b
Task 5Aktivitat 5a
Task 6Aktivitat 6
s12
s13
s24
s46
s36
s65s51
m234
79
Task 1Akt. 1
Task 2Akt. 2
Task 3Akt. 3
UML-Aktivitats-Diagramm:
Task 1Akt. 1
Task 2Akt. 2
Task 3Akt. 3
81
SchildVorbereitung
SchildZeigt Stop
SchildZeigt Go
WagenheberVorbereitung
Wagenheber
Hebt hoch
Wagenheber
Halt hoch
Wagenheber
Lasst ab
TankschlauchVorbereitung
TankschlauchAnkoppeln
TankschlauchAbkoppeln
TankenVorbereitung
TankenTanken
Radmutter 1..4Vorbereitung
Radmutter 1..4Losen
Radmutter 1..4Anziehen
AltesRad 1..4Vorbereitung
AltesRad 1..4Abnehmen
AltesRad 1..4Wegbringen
NeuesRad 1..4Holen
NeuesRad 1..4Aufsetzen
83
SchildVorbereitung
SchildZeigt Stop
SchildZeigt Go
WagenheberVorbereitung
Wagenheber
Hebt hoch
Wagenheber
Halt hoch
Wagenheber
Lasst ab
TankschlauchVorbereitung
TankschlauchAnkoppeln
TankschlauchAbkoppeln
TankenVorbereitung
TankenTanken
Radmutter 1..4Vorbereitung
Radmutter 1..4Losen
Radmutter 1..4Anziehen
AltesRad 1..4Vorbereitung
AltesRad 1..4Abnehmen
AltesRad 1..4Wegbringen
NeuesRad 1..4Holen
NeuesRad 1..4Aufsetzen
84
��
��Holzhack-Roboter
Holen (Roboter holt ein zu zerhackendes Holzstuck.)
Vorlegen (Roboter legt das Holzstuck auf dem Hackblock vor.)
Ausholen (Roboter holt mit der Axt aus.)
Hacken (Roboter schlagt mit der Axt zu.)
Freimachen (Roboter macht den Hackblock frei von Holzscheiden.)
Schichten (Roboter schichtet Holzscheide auf.)
Ablaufdiagramme fur einen, zwei, drei Roboter! Es gibt nur einen
Hackblock!
85
TAR1.Hole
TAR1.Vorl
TAR1.Aush
TAR1.Hack
TAR1.Frei
TAR1.Schi
TBR2.Hole
TBR2.Vorl
TBR2.Aush
TBR2.Hack
TBR2.Frei
TBR2.Schi
mVHF
mS
sH sH
sF sF
sV sV
89
Roboter 1Holen
Roboter 1Vorlegen
Roboter 2Ausholen
Roboter 2Hacken
Roboter 3Freimachen
Roboter 3Schichten
s12
s23
s31
90
Roboter 1Holen
Roboter 1Vorlegen
Roboter 2Ausholen
Roboter 2Hacken
Roboter 3Freimachen
Roboter 3Schichten
mHB
s12
s23
s31
91
��
��Erzeuger-Verbraucher-Problem
E schreibt x1, y1, z1.V liest x1, y1.V wird suspendiert.E schreibt neue Werte x2, y2, z2.V liest weiter z2. =⇒ V hat inkonsistenten Datensatzx1, y1, z2.
92
��
��Arten des Datenaustauschs
• a) Soll jeder geschriebene (erzeugte) Datensatz auch gelesen (ver-
braucht) werden?
• b) Sollen dabei Schreiben und Lesen zeitlich entkoppelt werden?
• c) Soll nur der jeweils aktuelle Datensatz (eventuell ofter) gelesen
werden?
• d) Soll der jeweils aktuelle Datensatz nur gelesen werden, wenn
geschrieben wurde?
• e) Soll das Reader-Writer-Problem gelost werden?
93
��
��Losung zu a)
Initialisierung
s1 = 1
s2 = 0
Task E Task V
↓ ↓p (s1) p (s2)
schreiben → gemeinsamer Speicherplatz→ lesen
v (s2) v (s1)
↓ ↓
94
��
��Losung zu c)
Initialisierung
s = 1
Task E Task V
↓ ↓p (s) p (s)
schreiben → gemeinsamer Speicherplatz→ lesen
v (s) v (s)
↓ ↓
96
��
��Losung zu d)
Initialisierung
s1 = 1
binar s2 = 0
Task E Task V
↓ ↓↓ p (s2)
p (s1) p (s1)
schreiben → gemeinsamer Speicherplatz→ lesen
v (s1) v (s1)
v (s2) ↓↓ ↓
97
��
��Ringpuffer
S tart −→ frei
frei
frei
H ead −→ altester Datensatz
Datensatz
Datensatz
Datensatz
jungster Datensatz
T ail −→ frei
frei
frei
frei
E nd −→ frei
98
��
��Ringpuffer
void enqueue (D)
{Warte bis N < L;
Schreibe nach T;
if T == E then T = S;
else T = T ⊕ 1;
N = N + 1;
}
99
��
��Ringpuffer
D dequeue ()
{Warte bis N > 0;
Lies von H;
if H == E then H = S;
else H = H ⊕ 1;
N = N - 1;
}
100
��
��Ringpuffer mit Semaphoren
init binarer Semaphor s = 1;
init binarer Semaphor s1 = 0;
init binarer Semaphor s2 = 0;
101
��
��Ringpuffer mit Semaphoren
void enqueue (D)
{p (s);
while N == L { v (s); p (s1); p (s); }Schreibe nach T;
if T == E then T = S;
else T = T ⊕ 1;
N = N + 1;
v (s2);
v (s);
}
102
��
��Ringpuffer mit Semaphoren
D dequeue ()
{p (s);
while N == 0 { v (s); p (s2); p (s); }Lies von H;
if H == E then H = S;
else H = H ⊕ 1;
N = N - 1;
v (s1);
v (s);
}
103
��
��Ringpuffer mit Semaphoren
init allgemeiner Semaphor sl = L;
init allgemeiner Semaphor sn = 0;
init binarer Semaphor sh = 1;
init binarer Semaphor st = 1;
104
��
��Ringpuffer mit Semaphoren
void enqueue (D)
{p (sl);
p (sh);
Schreibe nach T;
if T == E then T = S;
else T = T ⊕ 1;
v (sn);
v (sh);
}
105
��
��Ringpuffer mit Semaphoren
D dequeue ()
{p (sn);
p (st);
Lies von H;
if H == E then H = S;
else H = H ⊕ 1;
v (sl);
v (st);
}
106
��
��Reader-Writer-Problem
1. Schreiber haben exklusiven Zugriff. D.h. hochstens einSchreiber darf schreiben. Wenn ein Schreiber schreibt,darf kein Leser lesen.
2. Viele Leser konnen gleichzeitig lesen. Wenn Leser lesen,darf kein Schreiber schreiben.
3. Solange Leser lesen, werden neue Leser zum Lesen zu-gelassen.
107
��
��Bolt-Variable
Zustande:
reserved (gesperrt)
free (Sperre moglich)
entered (Sperre nicht moglich)
plus interner Zahler Z fur die Leser
108
��
��Bolt-Variable
Operationen:reserve (B): aufrufende Task wartet bis B == free
B = reserved
free (B): B = free
enter (B): aufrufende Task wartet bis B != reserved
B = entered
Z = Z + 1
leave (B): Z = Z - 1
if (Z == 0) B = free
109
��
��Bolt-Variable
Schreiber: Leser:
reserve (B); enter (B);
Schreiben; Lesen;
free (B); leave (B);
110
��
��Reader-Writer-Problem
Ubung 1: Normales Reader-Writer-Problem
Ubung 2: Reader-Writer-Problem mit Begrenzung der Leser
Ubung 3: Reader-Writer-Problem mit Schreiber-Vorrang
111
Warum ist folgende Losung falsch?public class BoltVariableIFalsch2 implements BoltVariable
{private enum BoltEnum {reserved, free, entered};private BoltEnum bold = BoltEnum.free;
private static int z = 0;
public void reserve ()
{while(bold != BoltEnum.free)
{HauptBoltVariable.warteEtwas();
}bold = BoltEnum.reserved;
}
public void free ()
{bold = BoltEnum.free;
}
public void enter ()
{while(bold == BoltEnum.reserved)
{HauptBoltVariable.warteEtwas();
}bold = BoltEnum.entered;
z++;
}
public void leave ()
{z--;
if(z==0) bold = BoltEnum.free;
}}
112
��
��Bolt-Variable falsch!
public void reserve ()
{while (boltVar != FREE) Thread.sleep (20);
boltVar = RESERVED;
}public void free ()
{boltVar = FREE;
}public void enter ()
{while (boltVar == RESERVED) Thread.sleep (20);
boltVar = ENTERED;
z = z + 1;
}public void leave ()
{if (z == 1) boltVar = FREE;
z = z - 1;
}
113
��
��Rendezvous
process body Friseur ()
{while (true)
{// Bereitet sich auf den nachsten Kunden vor
accept Haarschneiden (Wunsch)
{// Versucht den Wunsch zu erfullen.
Preis = "14,50"; // Uberlegt sich einen Preis.
treturn Preis;
} // end accept
// Kehrt die Haare zusammen.
} // end while
} // end process
114
��
��Rendezvous
process body Kunde (Friseur friseur)
{char* Wunsch;
char* Preis;
// Uberlegt sich, welche Haartracht er wunscht.
Wunsch = "top modern";
Preis = friseur.Haarschneiden (Wunsch);
// Verarbeitet den Preis und Haarschnitt.
}
115
��
��Rendezvous
accept Haarschneiden (Wunsch)
{treturn Preis;
} // end accept
// Kehrt die Haare zusammen.
accept Rasieren ()
{treturn Preis;
} // end accept
// Reinigt das Waschbecken.
116
process body Friseur ()
{while (true)
{// Bereitet sich auf den nachsten Kunden vor
select
{accept Haarschneiden (Wunsch) {treturn Preis;}or accept Rasieren () {treturn Preis;}or accept Bartschneiden () {treturn Preis;}or delay 1 Minute ; LiestKurzZeitung ();
}
// Raumt auf.
} // end while
} // end process
117
��
��Synchroneous Message Passing
• Bidirektionaler Botschaftenaustausch.
• Verstandlicher als async-MP. Sync-MP verhalt sich wie ein Funk-
tionsaufruf: blocking
• Keine implementationsabhangige Semantik.
• Fehlermeldungen sind ganz naturlich.
• Timeouts sind leicht implementierbar.
• Benutzbar als Synchronisationsmechanismus. Bei async-MP ist
Polling notig.
• Programmierfehler sind leichter zu finden. Bei async-MP treten
Fehler haufig nur unter Stress auf.
120
��
��Asynchroneous Message Passing
• non-blocking: Maximiert Nebenlaufigkeit.
• Botschaftenkanal (Message Queue) mit der Moglichkeit der Aus-
wahl von Botschaften zwecks Optimierung.
• Expressiveness: z.B. Server kann erst andere Klienten bedienen,
wenn fur einen Klienten nicht alle benotigten Ressourcen zur
Verfugung stehen. Bei syn-MP gibt es die sogenannte ”early reply”-
Technik (Wasche-Bon, laundry ticket).
• Das synchrone Protokoll kann leicht simuliert werden. Simulation
von async-MP mit syn-MP ist umstandlicher: man benotigt einen
Buffer-Prozess (fur die Queue).
121
��
��Ungefahre Leistungsdaten
Relative Uni- Multi-Zeiten prozessor prozessor
Synchron 1 100Asynchron 10 30Sim.Async 2 110
122
��
��Verteilter Ausschluss
• Zentrale Verwaltung (Koordinator)
• Token-Ring
• Eintrittskarte (Reply-Task, Request-Task)
123
��
��Eintrittskarte
1. Betretungswunsch an alle Konkurrenten senden.
2. Warten, bis alle Konkurrenten Erlaubnis erteilen (Reply-Task).
Wahrenddessen muss auf Betretungswunsche weiterer Konkurren-
ten reagiert werden (Request-Task), indem diese als ”verschoben”
registriert werden.
3. Kritischen Bereich betreten.
4. Kritischen Bereich verlassen und allen verschobenen Konkurrenten
eine Erlaubnis erteilen.
124
public class Task extends Thread
{private static Object sync = new Object ();
// Wird zum synchronisieren verwendet.
private static java.util.Random zufall = new java.util.Random ();
public void run ()
{System.out.println ("Start-Aktion"); // Transition: "Start-Aktion"
boolean weiter = true;
while (weiter) // Stelle: "vor while"
{switch (zufall.nextInt (2))
{case 0:
synchronized (sync) // Transition: "Sync0{"{ // Stelle: "vor Aktion0"
System.out.println ("Aktion0"); // Transition: "Aktion0"
weiter = false; // Stelle: "nach Aktion0"
} // Transition: "Sync0}"case 1:
synchronized (sync) // Transition: "Sync1{"{ // Stelle: "vor Aktion1"
System.out.println ("Aktion1"); // Transition: "Aktion1"
// Stelle: "nach Aktion1"
} // Transition: "Sync1}"case 2:
synchronized (sync) // Transition: "Sync2{"{ // Stelle: "vor Aktion2"
System.out.println ("Aktion2"); // Transition: "Aktion2"
// Stelle: "nach Aktion2"
} // Transition: "Sync2}"}
}System.out.println ("Ende-Aktion"); // Transition: "Ende-Aktion"
}
public static void main (String[] arg)
{for (int i = 0; i < 10; i++) new Task ().start ();
}
}
131
Start-Aktion
vor while
Ende-AktionSync1{ Sync2{
Sperre
vor Aktion1
Aktion1
nach Aktion1
Sync1}
vor Aktion2
Aktion2
nach Aktion2
Sync2}
132
��
��Schritthaltende Verarbeitung
• Prozessbedingte Zeiten
• Task
• Reaktionszeit
• Prioritat
• Scheduling-Strategien
• Harte und weiche Echtzeitbedingungen
• Entwurfsregeln
138
��
��Prozessbedingte Zeiten
• tz : maximal zulassige Reaktionszeit oderspezifizierte Reaktionszeit
• tp : Prozesszeit, Abtastperiode, Taktzeittp = tpmin (Worst Case Design)
• Spezifikation: tz ≤ tp
• Reaktionszeit des AS : tr
• Echtzeitbedingung (EZB, RTC) : tr ≤ tz
139
��
��Entwurfsmoglichkeiten
Echtzeitbedingungen:
tri ≤ tzi (≤ tpi) fur alle Teilprozesse i
• Tasking: Pro Prozesszeit tpi ein Teilprozess(Task) i
• Prioritatenvergabe
140
��
��Spezifikation uber Zeitpunkte
• R: fruhester Startzeitpunkt (release time)
•D: spatester Endzeitpunkt (deadline)
• S: tatsachlicher Startzeitpunkt (start time)
• E: tatsachlicher Endzeitpunkt (completion time)
141
��
��Zustandsgraph einer Task
'
&
$
%terminated
��������3
'
&
$
%sleeping
������
'
&
$
%readytw
?'
&
$
%active
tc
6
AAAAAK
QQQ
QQQk
������
��������3
'
&
$
%suspended B
tb
QQQ
QQQ
QQk
'
&
$
%suspended A
ts
AAAAAK
143
��
��Reaktionszeit
• Analyse der Anforderung
• Messen mit einem Messinstrument
• Erfassen des Messwerts uber eine I/O-Schnittstelle
• Verarbeiten des Messwerts und
Berechnung einer Ausgabegroße
• Ausgeben der Ausgabegroße uber eine I/O-Schnittstelle
• Steuern mittels eines Aktors
WCET worst-case execution time
144
��
��Wartezeit (suspended (B))
talleBMmaxj,i=
∑alleBM
tBMmaxj,i
tbi ≤∑
alle j 6=italleBMmaxj,i
·
⌈tzitpj
⌉
148
Suspended B
talleBMmaxj,i
Task X →wartet talleBMmaxY,X
auf A B C ...
Task Y ↓A 0 10 + 50 = 60ms 100 + 40 = 140ms ...
B 10 + 60 = 70ms 0 80ms ...
C 120ms 80ms 0 ...
... ... ... ... 0
tbX 190ms 140ms 220ms ...
149
��
��System-Overhead
Eine vernunftige Naherung durfte sein, wenn man anstattvon tc
tc + 2 · Taskwechselzeit
verwendet.
151
��
��Relative Gesamtbelastung
Relative Gesamtbelastung =∑
alle Tasks i
tcitpi
≤ 1
ist notwendige Voraussetzung.
Generell ansetzbar fur Aktivitaten.
152
��
��Faustregel
Prioritaten werden umgekehrt propotional zuden Prozesszeiten vergeben.RMS bzw. RMA
155
��
��Rel.Ges. und RMS
Rel.Ges. =
n∑i=1
tcitpi
≤ n(21n − 1)
Hierbei sei n die Anzahl der Tasks.n = 1 2 3 4 10 100 ∞
n(21n − 1) = 1,000 0,828 0,780 0,757 0,718 0,696 ln 2 = 0,693
156
��
��Prioritat
Prozess tv tw, wenn A tw, wenn Bhohere Prioritat hohere Prioritat
A 3.5 0.0 5.0B 1.0 3.5 0.0
157
��
��Scheduling
• RMA (Rate Monotonic Anaylsis) oder RMS (Rate
Monotonic Scheduling)
• EDF (Earliest Deadline First):
Bei jedem moglichen Taskwechsel ermittelt der Scheduler die
fruheste Deadline.
• PTS (Preemption-Threshold Scheduling):
Zusatzlich zu ihrer RMA-Prioritat P1 hat eine Task eine zweite
Prioritat P2 ≥ P1. Oft haben mehrere Tasks diesselbe P2 (pre-
emption threshold).
Das PTS lasst Unterbrechungen nur durch Tasks zu, deren Prio-
ritat hoher ist als die Preemption-Threshold P2.
160
��
��Ubung 4:
Task tp tv = tcA 6 3B 8 2C 10 1
Rel.Ges., Simulation RMS, Simulation EDF und Simula-tion PTS?
162
��
��Entwurfsregeln, Bemerkungen
• tvi ≤ tzi fur alle Prozesse i ist eine notwendige Echt-zeitbedingung.
•∑
i
tcitpi
≤ 1 ist auch nur eine notwendige Echtzeitbe-
dingung.
• tri ≤ tzi fur alle Prozesse i ist eine hinreichende Echt-zeitbedingung oder die Echtzeitbedingung schlechthin.
• Besonders kritische Zustande (Alarmzustande) durfenu.U. die Echtzeitbedingungen verletzen.
165
��
��Tasking
Die gesamte Steueraufgabe muss so in Teilaufgaben auf-geteilt werden, dass die Echtzeitbedingungen eingehaltenwerden.
166
��
��Scheduling-Strategien
RMS: Die Prioritat wird umgekehrt proportional zu tzvorab vergeben (static priority).
EDF: Die hochste Prioritat bekommt jeweils die Task mitder fruhesten Deadline (dynamic priority).
PTS: Die Prioritaten werden auch vorab wie bei RMSvergeben. Jede Task bekommt zusatzlich eine zweitePrioritat, ab der sie unterbrochen werden kann.
167
��
��Entwurfsregeln, Bemerkungen
Relative Gesamtbelastung: Die relative Gesamtbe-
lastung∑
i
tcitpi
sollte 0.3 bis 0.5 , d.h. 30% bis 50% nicht
ubersteigen. Die 85% des oben genannten Beispiels gel-ten als sehr gefahrlich.
168
��
��Entwurfsregeln, Bemerkungen
Zeitscheibenverfahren:n sei die Anzahl der Tasksτ sei die Dauer einer Zeitscheibe
tri ≤ n · τ ·⌈tciτ
⌉+ tsi + tbi
Echtzeitbedingung tri ≤ tzi wird zu:
n · τ ·⌈tciτ
⌉+ tsi + tbi ≤ tzi
169
��
��Entwurfsregeln, Bemerkungen
Kritische Bereiche : Kritische Bereiche sind Bereiche,die von allen oder manchen Tasks ausschließlich benutztwerden. Da diese Bereiche das Prioritatsschema storenkonnen, sollten sie so kurz wie moglich gehalten werden.
170
��
��Entwurfsregeln, Bemerkungen
Ablaufsteuerung: Die Prioritat ist kein Mittel zur Syn-chronisation oder Ablaufsteuerung. Semaphore, Bolt-variable, Monitore, Rendezvous und Transactions sindMittel fur die Ablaufsteuerung und das Schutzen kriti-scher Bereiche.
171
��
��Entwurfsregeln, Bemerkungen
Harte und weiche Echtzeitbedingung:
tzsoft = 1 Sekunde mit Faktor = 2
tzhard = 60 Sekunden
172
��
��Entwurfsregeln, Bemerkungen
Deterministisches Verhalten: Ein realer technischerProzess verhalt sich nie deterministisch. Denn sonstmusste man ihn nicht steuern.
In jedem Zustand ist bei gegebener Eingabemenge dieAusgabemenge eindeutig.
Echtzeit-System: temporal determinism: Reakti-onszeiten sind endlich und in Grenzen vorhersagbar.
173
��
��Entwurfsregeln, Bemerkungen
Vorgehensweise: • Ermittlung bzw. Definition von Prozesszeiten
und zulassigen Reaktionszeiten.
• Tasking: Definition von Teilaufgaben bezuglich der Prozesszei-
ten mit konzeptioneller Vereinfachung durch Parallelisierung.
• Abschatzung der Verarbeitungszeiten und Vergleich mit den
zulassigen Reaktionszeiten.
• Berechnung der Relativen Gesamtbelastung.
• Vergabe von Prioritaten.
• Abschatzung der Reaktionszeiten und Vergleich mit den
zulassigen Reaktionszeiten.
174
��
��Prozess- bzw. Taskbindung
Zeitliche Bindung: Aktionen und Aktivitaten, die stets in einem definier-ten Zeitintervall und Reihenfolge ausgefuhrt werden, werden in einer Taskzusammengefasst. Z.B. kann das eine Initialisierungstask sein.
Sequentielle Bindung: Tasks sind so hintereinandergeschaltet, dass die Aus-gabe der einen die Eingabe der nachsten Task ist (Datenfluss). Wenn dieAktivitaten nebenlaufig sein sollen, werden sie durch eine Queue oder Pipezeitlich entkoppelt.
Bindung durch Kommunikation: Tasks hangen durch intensive Kommu-nikation so sehr zusammen, dass die Nebenlaufigkeit stark eingeschranktist. Hier bietet sich die Zusammenfassung in eine Task an.
175
��
��Prozess- bzw. Taskbindung
Aktionsbindung: Einzelne Aktionen und Aktivitaten einer Task arbeiten aneiner abgeschlossenen Aufgabe.
Informale Bindung: Verwendet eine Task Betriebsmittel, die von anderenTasks nur im wechselseitigen Ausschluss bearbeitet werden konnen, so liegtbei dieser Task eine informale Bindung vor.
Harte Echtzeitbedingung: Eine Aktivitat, die harten Echtzeitbedingungenunterliegt, wird innerhalb einer Task moglichst ohne Bindung an andereTasks durchgefuhrt.
176
Task SchnellAkt. 1 {unkritisch}{3 Zeiteinheiten}
Task SchnellAkt. 2 {kritisch}{7 Zeiteinheiten}
Task SchnellAkt. 3 {unkritisch}{6 Zeiteinheiten}
Task SchnellAkt. 4 {kritisch}{4 Zeiteinheiten}
Task LangsamAkt. 5 {kritisch}{17 Zeiteinheiten}
Task LangsamAkt. 6 {unkritisch}{11 Zeiteinheiten}
Task LangsamAkt. 7 {kritisch}{16 Zeiteinheiten}
Task LangsamAkt. 8 {unkritisch}{12 Zeiteinheiten}
MUTEX
177
��
��Aufgaben
Aufgabe 1: Machen Sie sich mit Hilfe eines Timeline-oder Sequenz-Diagramms klar, wann welche Aktivitatenlaufen.Aufgabe 2: Schatzen Sie auf Grund des Diagramms ab,was die jeweilige Worst-Case-Zyklusdauer ist.Aufgabe 3: Schatzen Sie die jeweilige Worst-Case-Zyklusdauer unter Verwendung der Formeln im Abschnitt”Reaktionszeit” ab.Aufgabe 4: Programmieren Sie eine Simulation.
178
:Schnell :Langsamu3
k17
k7 u11
k16
u6
k4u12
48
56
u3
k7
k17
u6
k4u1179u3
k7
k16
u6
k4 109u12
117
u3
k7
k17
u6
k4 140 u11u3
k7
k16
u6
k4 170u12
178
u3
k7
k17
u6
k4 201u3
k7
u11
179
��
��Reaktionszeiten
Task tp tz tc tv tw tb tr tr trFormel Simul. Diagr.
Schnell 20 76 0 20 0 66 86 49 48Langsam 56 76 0 56 0 44 100 61 61
180
��
��Echtzeitsystem-Entwicklung
• Technische Prozesse bestehen aus vielen (Teil)-Prozessen.
• Die Prozesse laufen parallel (Nebenlaufigkeit).
• Die Prozesse unterliegen gewissen Zeitbedingungen.
• Prozesse sind Einzelkomponenten (Tasks) des Entwurfs.
• Prozesse steuernde Programme sind sequentielle Programme. Fur
ihre interne Strukturierung konnen Entwicklungsprinzipien des se-
quentiellen Entwurfs verwendet werden.
• Bei technische Prozessen mussen Sicherheitsaspekte beruck-
sichtigt werden.
181
��
��Objektorientierung
”was ein Objekt tut” (Abstraktion, Schnittstelle eines Ob-jekts)und”wie ein Objekt etwas tut” (Realisierung, Implementie-rung, Reprasentation eines Objekts).
182
��
��Echtzeitcharakteristika
• nebenlaufig (concurrent)
• asynchron (asynchronous)
• verteilt (distributed)
183
��
��Benutzerschnittstelle
• Voll-animierte graphische Oberflache
• Spezialisierte Schnittstellen
• fly-by-wire
• drive-by-wire
• Sicherheitsprobleme bei schlechten Benutzerschnittstel-len
– Stress-Situationen
– Ausnahme-Zustande
184
��
��Essentielles Modell
• Essentielles Modell
– Umgebungs-ModellBeschreibt E/A des realen technischen Prozess (P).
– Verhaltens-ModellBeschreibt Reaktion des Automatisierungs-Systems(AS).
185
��
��Testen
Problem: Realer Prozess kann im allgemeinen nicht unterbeliebigen Szenarien gefahren werden.=⇒Simulationsmodell
186
��
��Simulation
Simulationsmodell: Aufwendig,spart aber insgesamt Zeit.
Grad der Detailierung sollte sich an Testanforderungen ori-entieren.Fordert Prozessverstandnis.
187
��
��Agenten-Modell
Agent
erledige (:Auftrag)empfange (:Ergebnis)
:Agent :Agent
erledige (aAuftrag)
empfange (aErgebnis)
188
��
��Agenten-Modell
Agent_
Agent_0
Agent_1
Agent_2
Agent_3
aAuftragaErgebnis
aAuftragaErgebnis
aAuftrag
aErgebnis aAuftrag
aErgebnis
189
��
��Agenten-Modell
Agent: agiert relativ autonom
Kann im Prinzip irgendeine Komponente des realen Pro-zesses reprasentieren.
Agenten kommunizieren uber Botschaften.
Agenten arbeiten nebenlaufig.
190
��
��Botschaften
Agenten schicken sich Botschaften mit folgenden Eigen-schaften:
• point-to-point
• non-blocking
• Botschaften werden gepuffert. Sie gehen nicht verloren,wenn der Empfanger gerade nicht empfangsbereit ist.
• Eine Reihenfolge der Botschaften wird nicht garantiert.
• Eine Botschaft enthalt auch den Absender.
191
��
��Unterbrechen/Beenden von Tasks
Grundsatzlich problematisch!(end-of-lifecycle issues, graceful shutdown)suspend / resume
???stop, kill, cancel
Besser sind kooperative Mechanismen!
192
��
��Kooperativer Mechanismus
Zustandvariable mit folgenden Werten:
1. laufend (running)
2. beendet (terminated)
3. suspendiert (suspended)
Zustandsanderungsvariable mit folgenden Werten:
1. beenden (cancel)
2. suspendieren (suspend)
3. weiter (resume)
193
��
��Erzeuger-Verbraucher
Eine E-V-Kommunikation ist oft schwierig herunterzufah-ren, da die Queue- oder Pipe-Operationen oft nicht unter-brechbar sind.
poison pill
Kann bei vielen Erzeugern und Verbrauchern kompliziertwerden.
194
��
��Task Leakage
Das Verschwinden einer Task wird oft nicht bemerkt.
Daher sollte das Verschwinden einer Task signalisiert wer-den.
195
��
��Funktionales Modell
• DFD: Datenfluss-Diagramm
• CFD: Kontrollfluss-Diagramm
• Kontext-Diagramm
• DFDs und SA/SADT
196
Quelle
SourceSenke
Sink
Transformation
Trans-formation
Trans-formation
Transf.
Datenspeicher
Data Store
Datenstrom
Datastream
Datenobjekt
Datenobjekt
Datenobjekt
Datastream
Dataobject
Dataobject
Dataobject
DataobjectDataobject
197
Quelle 1
Senke 1Quelle 2
Senke 2
Trans-formation
Trans-formation
Trans-formation
Trans-formation
Datenspeicher
DS
DO
DO
DO
DO
DO
DODO
DO
Aktivierungsereignis
Ereignis
198
��
��Echtzeitbetriebssystem (RTOS)
• Multitasking: competing and communicating processes
• Priority Based Preemptive Scheduling
• Intertask(prozess)kommunikation: Pipes, Queues, Shared Memory
• Synchronisationsmechanismen: Semaphore, Rendezvous, Monito-
re, Channels
• Leistungsfahigkeit: Ein Echtzeitkern muss auf den ”Worst Case”
und nicht auf maximalen Durchsatz optimiert werden.
• Interrupt: Moglichst schnelle Reaktion.
• safety und security
200
��
��Leistungsvergleich
• ISR (etwa 1µs): Zeit, bis erster Befehl in einer In-terrupt Service Routine nach einem Interrupt durch-gefuhrt wird.
• IST (etwa 10µs): Zeit, bis in einer Interrupt ServiceRoutine nach einem Interrupt ein Thread gestartet wur-de.
203
��
��Architekturen
• flat architecture: Betriebssystemkern und Anwendung befin-
den sich auf derselben (der einzigen) Privilegienebene. Anwendung
und Betriebssystemkern sind nicht klar unterscheidbar. Es gibt kei-
nerlei Speicherschutz.
• monolithic architecture: (WinCE) Betriebssystemkern
enthalt alle Bibliotheken, auf die die Anwendung direkt zugreift.
Es gibt mindestens zwei Privilegienebenen, Kern und User. Fur
die Kern-Prozesse gibt es keinen Speicherschutz.
• micro kernel architecture: (VxWorks, QNX) Betriebssy-
stemkern enthalt keine Bibliotheken. Diese befinden sich auf einer
eigenen Ebene. Die Anwendung kann aber nur uber den Kern auf
die Bibliotheken zugreifen. Voller Speicherschutz.
204