datenverarbeitung { PDV - DHBW Stuttgartkfg/pdv/pdvF.pdf · Ziel ist Vollautomatisierung h ohere...

205
Aspekte Prozessdatenverarbeitung – PDV Prozessleitsystem – PLS Prozessautomatisierungssystem – PAS 1

Transcript of datenverarbeitung { PDV - DHBW Stuttgartkfg/pdv/pdvF.pdf · Ziel ist Vollautomatisierung h ohere...

��

��Aspekte

• Prozessdatenverarbeitung – PDV

• Prozessleitsystem – PLS

• Prozessautomatisierungssystem – PAS

1

��

��Leittechnik ?

Verfahrensleittechnik FertigungsleittechnikProzessleittechnik (Elektroindustrie,

(Chemische Industrie) Maschinenbau)↘ ↙

ProduktionsleittechnikSystem Control

AutomationAutomatisierungs-System

2

��

��P–AS

P ⇐⇒ AS

3

��

��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

��

��Tradeoff HW – SW

Tendenz:

Hardware −→ Software

7

��

��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

��

��Beispiel Realzeit

→→→Weg 1Wagen Weg x →→→ → •↘

↓ ↑ →→→Weg 2

Sensor (Leser) Aktor

14

��

��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

��

��Abgrenzung

• VPS (Elektronikkarten, Gate-Arrays, GAL, PAL,CPLD, FPGA, DSP, SDS)

• SPS, PLC

17

��

��Kopplung P–AS

Mensch↑ ↓

off line in line on line on lineopen loop closed loop

Automatisierungssystem↑ | ↑ | ↑ | ↑ |Mensch Mensch | Mensch | || ↓ | ↓ | ↓ | ↓

Prozess

18

��

��Ubung

Diskutieren Sie die Verhaltnisse bei einer Motorsteuerung.

19

��

��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

��

��Technischer Prozess

Technologie

Materie

Produkt

Energie Information?

?

- �

22

��

��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

��

��Weiter Begriffe

• Stationare Prozesse

• Zyklische Prozesse

34

��

��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

��

��Strukturierte Automation

38

��

��Zustandsmanager

switch - case - Konstrukt

39

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

Druck

Signal1

Signal2

Signal3

Signal4

Berechnung

43

��

��Beispiel

Druck

Signal1

Druck

Signal2

Druck

Signal3

Druck

Signal4

Druck

Berechnung

44

��

��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

��

��Beispiel

n := n + 1;

setzt sich eventuell zusammen aus:

Lade n;

Addiere 1;

Speichere n;

54

��

��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

��

��Beispiel Schweiß-Roboter

Ubung!

72

��

��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

��

��UML-Notation

Task 1Akt. 1

Task 2Akt. 2

UML-Aktivitats-Diagramm:

Task 1Akt. 1

Task 2Akt. 2

80

Task 1Akt. 1

Task 2Akt. 2

Task 3Akt. 3

UML-Aktivitats-Diagramm:

Task 1Akt. 1

Task 2Akt. 2

Task 3Akt. 3

81

��

��Beispiele

• Schweiß-Roboter

• Boxenstop

• Holzhacken

82

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

86

TAR1.Hole

TBR1.Vorl

TCR1.Aush

TDR1.Hack

TER1.Frei

TFR1.Schi

sAB sBC

sCD

sDEsEF

sFA

87

TAR1.Hol

TAR1.Vorl

TBR2.Aush

TBR2.Hack

TAR1.Frei

TAR1.Schi

sAB

sBA

88

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 b)

Task E Task V

↓ ↓schreiben → gemeinsamer Ringpuffer→ lesen↓ ↓

95

��

��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

Objekt1 Objekt2

118

��

��Asynchroneous Message Passing

asynchrone Botschaft

119

��

��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

��

��Intertask-Kommunikation

•message queue

• pipe

125

��

��Diskussion

126

s1 s2 s3

s4 s5 s6

s7

t1

t2

t3 t4

127

s1 s2 s3

s4 s5 s6

s7

t1

t2

t3 t4

128

s1 s2 s3

s4 s5 s6

s7

t1

t2

t3 t4

129

s1 s2 s3

s4 s5 s6

s7

t1

t2

t3 t4

130

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

Start-Aktion

Start

vor uB

uB

vor kP

kP

vor uV

uV

vor kS

kS

SperreP

SperreS

133

Start-Aktion

Start

vor uB

uB

vor kP

kP

vor uV

uV

vor kS

kS

SperreP

SperreS

134

Start-Aktion

Start

vor uB

uB

vor kP

kP

vor uV

uV

vor kS

kS

SperreP

SperreS

135

Start-Aktion

Start

vor uB

uB

vor kP

kP

vor uV

uV

vor kS

kS

SperreP

SperreS

136

Start-Aktion

Start

vor uB

uB

vor kP

kP

vor uV

uV

vor kS

kS

SperreP

SperreS

137

��

��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

��

��Ubung 2: Motorsteuerung

142

��

��Zustandsgraph einer Task

'

&

$

%terminated

��������3

'

&

$

%sleeping

������

'

&

$

%readytw

?'

&

$

%active

tc

6

AAAAAK

QQQ

QQ

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

��

��Verarbeitungszeit

tv = Verarbeitungszeittc Prozessorzeit

+ ts Wartezeit (suspended (A))

145

��

��Reaktionszeit

tr = tv + tw + tb

146

��

��Wartezeit (ready)

twi ≤∑

alle j 6=itcj ·

⌈tzitpj

⌉Prio(j) ≥ Prio(i)

147

��

��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

��

��RMA

Die vorgestellten Abschatzungen orientieren sich an derrate monotonic analysis (RMA).

150

��

��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

��

��Prioritat

Prozess tz = tp ms tc = tv ms

A 10.0 3.5B 2.0 1.0

153

Szenarien

154

��

��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

��

��Weiteres Beispiel:

Prozess tz = tp ms tc = tv ms

A 10.0 1.0B 2.0 1.5

158

��

��Weiteres Beispiel:

Prozess tz = tp tc = tvA 24 h 8 hB 7 ms 1 msC 600 s 300 s

159

��

��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 3:

Task tp tv = tcA 6 3B 8 3C 10 1

Rel.Ges., Simulation RMS und Simulation EDF?

161

��

��Ubung 4:

Task tp tv = tcA 6 3B 8 2C 10 1

Rel.Ges., Simulation RMS, Simulation EDF und Simula-tion PTS?

162

��

��Harte Echtzeitbedingung

h(tr) = 0 fur alle tr > tz

163

��

��Weiche Echtzeitbedingung

Schwerpunkt =

∫∞0 tr h(tr) dtr∫∞

0 h(tr) dtr< tz · Faktor

164

��

��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

��

��Echtzeitsprachen

• Echtzeitbetriebssystem und C/C++

• Echtzeitsprache:

– Ada?

– Java

– C#

199

��

��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

��

��Echtzeitbetriebssystem

• Task

• Prozess

• Thread

201

��

��Werkzeuge

• Message Queues

• Pipes

• Watchdog Timer

• Timetables

• Barriers

• Latches

202

��

��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

��

��Echtzeitbetriebssysteme

• • OSEK/VDX

• • POSIX

• VxWorks

• QNX

• Embedded oder Real-Time Linux

• Pike-OS

• Windows Embedded

• ThreadX

205