29
HTWM Hochschule für Technik und Wirtschaft Mittweida Technikumsplatz 17 09648 Mittweida Echtzeitverarbeitung Erstellt von: Isabel Drost (if99wP1) Dozent: Prof. Dr. Ruck [email protected] http://www.isabel-drost.de Druckhinweis: in Buchform geschrieben

Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarb

eitung

HTWM Hochschule für Technik undWirtschaft Mittweida Technikumsplatz 17 09648 Mittweida

Erstellt von: Isabel Drost (if99wP1) Dozent: Prof. Dr. Ruck [email protected] http://www.isabel-drost.de Druckhinweis: in Buchform geschrieben

Page 2: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat
Page 3: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

0 Motivation.....................................................................................................................................5 0.1 Literaturhinweise: ............................................................................................................................ 5

0.2 VO – Gliederung............................................................................................................................... 5

1 Sequentielle und parallele Prozesse ............................................................................................6 1.1 Parallele Prozesse werden in zwei Klassen unterteilt:................................................................... 6

1.2 Trennung von Prozessen und Programm....................................................................................... 7

2 Verwaltung paralleler Prozesse ...................................................................................................7 2.1 Klassifizierung paralleler Rechenprozesse..................................................................................... 7

2.2 Aufgaben der Prozessverwaltung.................................................................................................... 8

2.3 Werkzeuge der Prozessverwaltung ................................................................................................. 8

2.4 Verwaltungsstrategien: .................................................................................................................... 9

3 Das Echtzeitbetriebssystem MRT86 ..........................................................................................10

4 Betriebsmittelverwaltung ...........................................................................................................12 4.1 Prozessorverwaltung ...................................................................................................................... 12

4.2 Speicherverwaltung ........................................................................................................................ 13

4.3 Zeitgeberverwaltung ...................................................................................................................... 14

4.4 Ein-/ Ausgabeverwaltung............................................................................................................... 14

4.5 Prozessorbelastung ......................................................................................................................... 14

5 Beschreibung von Echtzeitsystemen..........................................................................................14 5.1 Petrinetze......................................................................................................................................... 14

5.2 Formale Beschreibungen und Zeitdiagramme............................................................................. 21

Page 4: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat
Page 5: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Motivation

0 Motivation sequentielle Denkweise für den Ablauf eines Einzelprozesses soll ergänzt werden um die nebenläufige beim Zusammenspiel abhängiger Prozesse Annahmen der klassischen Programmierung: • Ein Rechner führt genau ein Programm aus. (Im Gegensatz zu Multitasking – Systemen) • Ein Programm wird genau auf einem Rechner ausgeführt. (Im Gegensatz zum verteilten Rechnen) • Ein Programm erfüllt seine Funktion unabhängig vom Startzeitpunkt und benötigter Bearbeitungszeit. (Echtzeit-

verarbeitung setzt hier einen Gegensatz an.) Im Gegensatz zu diesen Annahmen existiert die:

concurrent, distributed, realtime dependend programs nebenläufige (simultane), verteilte und echtzeitabhängige Programme

Arbeitet man mit dieser Art von Programmen, muß zwischen dem Programm selbst und dem Prozess unterschieden werden.

0.1 Literaturhinweise: • Herrtwich, R.G.; Hommel, G.: nebenläufige Programme.Nebenläufige verteilte und

echzeitabhängige Rechenprozesse Berlin, Heidelberg, New York, Springer 1994 (siehe auch Bibliothek)

• Wettstein, H: Entwicklung von Betriebssystemen.München, Wien, Carl Hanser ... • Dannegger, Ch.: Gengelin-Dannegger: Parallele Prozesse unter UNIX.München, Wien, Carl

Hanser, 1991

0.2 VO – Gliederung • Sequentielle und parallele Prozesse

- Prozessbegriff - Demonstration der Zeitabhängigkeit voneinander abhängiger Prozesse

• Verwaltung paralleler Prozesse - Steuerung der simultan ablaufenden Prozesse - räuml. und zeitl. Verwaltung - Betriebsmittelbegriff - konkurierende und kooperierende Prozesse - Verwaltungsaufgaben (Prozeßkoordination, -synchronisation, -kommunikation) - Verwaltungswerkzeuge (Semaphor, Warteschlange, Nachrichtenpuffer) - Verwaltungsstrategien (RoundRobin, Ereignissteuerung) - Begriffe wie VM, ext. Ereignis, Echzeit, Deadlock

• BM- Verwaltung - Prozessor, Speicher, Clock, E/A-Kanäle

• Beschreibung von Echzeitsystemen - Petri-Netze ohne, mit, mit unterscheidbaren Marken - formale Beschreibungen - Zeitdiagramme

• EchtzeitBS - wichtige EZBS in der Praxis - zeitliches Verhalten von RT-BS

• Echzeitsprachen - zugeschnittenes RT-Sprachen für embedded systems - Möglichkeiten von C, Ada, Pearl - Ergänzung prozeduraler Sprachen (z.B. C) um einen RT-BS-Kern

Isabel Maine C. Drost Seite 5 von 29

Page 6: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Parallele Prozesse werden in zwei Klassen unterteilt:

1 Sequentielle und parallele Prozesse Ein System ist ein relativ abgeschlossener Teil der Welt, der über Ein- und Ausgangsrößen mit seiner Umwelt in Wechselwirkung steht. • in einem solchen System laufen Prozesse ab

- Ein Prozeß abstrakt definiert: Zeitlich geordnete Folge von Zuständen.

- Ein Prozeß konkret definiert: quantitative oder qualitative Änderung von Stoffen, Energien oder Informationen in Abhängigkeit von der Zeit.

• mehrere (separierbare) Prozesse laufen gleichzeitig ab,

sind aber nicht voneinander isoliert • für zwei Prozesse gelten folgende Beziehungen:

- sequentielle Prozesse, genau dann, wenn b beginnt, wenn a beendet ist oder umgekehrt - parallele Prozesse, genau dann, wenn b beginnt, bevor a beendet ist.

1.1 Parallele Prozesse werden in zwei Klassen unterteilt: • unabhängige Prozesse: es gibt keine Wechselwirkungen zw. den Prozessen, sie laufen vollständig assynchron • abhängige Prozesse: Wechselwirkungen existieren, der Zustand eines Prozesses ist vom Zustand eines anderen

Prozesses abhängig, laufen meist assynchron • in Multitask- und Echtzeitsystemen müssen

Berechnungsschritte simultan ausgeführt werden, weil andernfalls ein Informationsverlust möglich wäre

• Echtzeit: relative Lage der Prozesse zueinander • simultane Arbeitsweise bringt Probleme, die

durch die nicht vorherbestimmbaren relativen Ausführungsgeschwindigkeiten von Rechenpro-zessen entstehen

• es kann zu falschen Ergebnissesn (Zeitvarianz) bei abhängigen parallelen Rechenprozessen führen

Beispiel: Gegeben seien zwei parallele Prozesse a und b, die die externen Ereignisse 1 und 2 in einer gemeinsamen, globalen Variablen zählen.

U M W E L T

S Y S T E M

System = abgeschlossener Raum der Umwelt

Eingangs-größen

Ausgangs-größen

Abbildung 1-1; Ein System in seiner Umwelt

Zeit

AB

AB

Zeit

Zeit

Prozeß a und b beeinflußen sich nicht, laufen sequentiell ab

AB

A

Prozess a und b laufen gleichzeitig, beeinflußen sich nicht

Prozess a und b laufen parallel und beeinflussen sich

Zeiit

Abbildung 1-2; Visualisierung der Prozessarten

Prozess A | Prozess B E1 i++ | |i++ E2 `.´Zeit Ergebnis ist OK, die Summe ist zwei Beim Compilieren eines Programms, geschrieben in einer Hochsprache wird eine solche Anweisung im ungünstigsten Fall in mehrere Prozessorschritte zerlegt: Hole die Variable, Inkrementiere die Variable, Schreibe die Variable zurück. Somit ist das Ergebnis zeitabhängig.

Isabel Maine C. Drost Seite 6 von 29

Page 7: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Verwaltung paralleler Prozesse

Das gleiche Problem tritt bei quasisimultaner Aktionsfolge auf. (B sei höher priorisiert als A) Prozess A | Prozeß B E1 | a=i | E2 . | b=i . | b++ . | i=b a++ | i=a | `.´zeit

Folge: i ist wieder nur um eins erhöht!

Forderung: Die Ausgangsgrößen (Ergebnisse) eines Echtzeitsystems sind eine zeitunabhängige Folge der Eingangsgrö-ßen (Parameter).

1.2 Trennung von Prozessen und Programm • wichtiger Aspekt bei parallelen Rechenprozessen: Mehrere Prozesse können gleichzeitig dasselbe Programm

benutzen reentrante Programme • strikte Trennung zwischen Programm und Prozess Programm = Folge von Befehlen/ Anweisungen im Speicher oder auf einem externen Datenträger

- enthält die exakte Forumulierung eines Algorithmus in einer Programmiersprache - legt Regeln für die Verarbeitung von Informationen fest - kann einen Teil der Prozeßumgebung (Prozeßrumpf) bilden

Prozeß = existiert während der Ausführung eines Programmes auf einem Rechner

- ist ein dynamischer, lebendiger Vorgang - entsteht, wenn ein Progrmm gestartet wird - seine Lebensdauer beginnt mit der ersten und endet mit der letzten ausgeführten Anweisung

2 Verwaltung paralleler Prozesse Ziel: - Steuerung der gleichzeitig auf dem Rechner ablaufenden Prozesse - sinnvolle Aufteilung der Rechnerhardware, zeitliche Organisation der Prozesse Prozeßverwaltung: - räumliche und zeitliche Koordination von Benutzerprozessen auf dem Rechner - ist von konkreter Rechnerhardware abhängig aber von Funktionen der Benutzerprozesse unabhängig - Problemunabhängigkeit des Prozeßverwalters Betriebsmittel (BM): - physische Bestandteile eines Rechners (Speicher, CPU) - im erweiterten BM-Begriff gehören auch Nachrichtenpuffer, Semaphoren, Prozeßbeschreibungen (TCB) dazu

2.1 Klassifizierung paralleler Rechenprozesse - konkurrierende Prozesse

= unabhängige parallele Rechenprozesse kommen aufgrund ihrer Ausführung auf dem selben Rechner in Berührung

= konkurrieren um gemeinsam genutzte BM

- kooperierende Prozesse = abhängige Prozesse kommen aufgrund ihrer Ausführung auf dem selben Rechner sowie aufgrund des

Infromationsaustauschs in Berührung = laufen meist assynchron

Isabel Maine C. Drost Seite 7 von 29

Page 8: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Aufgaben der Prozessverwaltung

Typisch für konkurrierende Prozesse: • Multitasksysteme • Multiusersysteme (Auslastung der Rechnerhardware, Zugangsmöglichkeit für mehrere Nutzer) Typisch für kooperierende Prozesse: • Systeme der Prozessdatenverarbeitung mit einem gemeinsamen Steuerungsziel

2.2 Aufgaben der Prozessverwaltung • Prozeßkoordination

- wechselseitiger Ausschluß beim BM-Zugriff - für konkurierende und kooperierende Prozesse

• Prozeßsynchronisation - Gleichlauf von Prozessen zu bestimmten Zeiten - nur für kooperierende Prozesse

• Prozesskommunikation - Nachrichtenaustausch mit oder ohne zeitl. Entkopplung - nur für kooperierende Prozesse

2.3 Werkzeuge der Prozessverwaltung • Semaphor: globale Variable zum wechselseitigen

Ausschluß sowie zur Synchronisation paralleler Prozesse

Beispiel: Einseitige Synchronisation mit binärem Semaphor Semaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat ist mindestens so groß, dass alle gesendeten aber noch nicht empfangenen Zeitsignale erfaßt werden können.)

Zustand n n+1 n+2

Zustand m

Prozeß A

Prozeß B

Semaphor

Prozeß B soll erst dann in den Zustand m+1 eintreten,wenn Prozeß A schon in n+2 war

warten

Zustand m+1

Abbildung 2-1; Beispiel für einen binären Semaphor

2.3.1 Einseitige Synchronisation in C EEiinnsseeiittiiggee SSyynncchhrroonniissaattiioonn iinn CC

p(sema) und v(sema) sind Operatoren, nach Dijkstra, die folgende Bedeutung haben: ......

iinntt sseemmaa==00;; //**SSeemmaapphhoorr wwiirrdd iinniittiiaalliissiieerrtt**// vvooiidd PPrroozzeessss__AA(()) {{ ...... vv((sseemmaa)) //**SSeemmaapphhoorr ffrreeiiggeebbeenn**// ...... }} vvooiidd PPrroozzeessss__BB(()) {{ ...... pp((sseemmaa));; //**SSeemmaapphhoorr aabbffrraaggeenn**// ...... }}

p ... Probieren/ request semaphor

v ... Erhöhen/ Release-Semaphore

sema--

sema<0j n

anfordernden Prozeß block.

Abbildung 2-2; Visualisierung der atomaren Funktion p

Isabel Maine C. Drost Seite 8 von 29

sema++

sema<=0j n

anfordernden Prozeß deblock.

Abbildung 2-3; Visualisierung der atomaren Funktion v

Page 9: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Verwaltung paralleler Prozesse

2.3.2 Zweiseitige Synchronisation und wechselseitiger Ausschluß ZZwweeiisseeiittiiggee SSyynncchhrroonniissaattiioonn uunndd wweecchhsseellsseeiittiiggeerr AAuusssscchhlluußß ......

iinntt sseemmaa==11;; vvooiidd PPrroozzeessss__AA(()) {{ ...... PP((sseemmaa));; //**EEiinnttrriitttt iinn kkrriittiisscchheenn AAbbsscchhnniitttt**// ...... VV((sseemmaa));; //**AAuussttrriitttt aauuss kkrriittiisscchheemm AAbbsscchhnniitttt**// ...... }} vvooiidd PPrroozzeeßß__BB(()) {{ ...... PP((sseemmaa));; ...... VV((sseemmaa));; ...... }}

2.3.3 Nachricht • zwischen parallelen Prozessen ausgetauschte Daten mit beiden kommunizierenden Seiten bekannter Bedeutung • Austausch im Rendevous bzw. mit zeitlicher Entkopplung bei Benutzung von BM

2.3.4 Warteschlange geordnete Liste von Prozessen, die auf Benutzung eines gemeinsamen BM warten

2.4 Verwaltungsstrategien:

2.4.1 nichtunterbrechbare Steuerung: • FCFS – First come first served • SJN – shortest job next • HRN highest response ratio next typisch für konventionelle Dtenverarbeitungsanlgen (effektive Rechnerauslastung, vorherschaubare Antwortzeiten, Antwortzeit: vom Start des Programms bis zum Ende, aber in Multitasking-Umgebung, Antwortverhältnis – Antowortzeit – Rechenzeit unterbrechende Steuerung: RoundRobin, EventControl • typisch für Echzeitsysteme, nicht effiziente Rechnerauslasturn, sondern Auslastung des kompletten Systems

entscheiden • RoundRobin: Zeitscheibenverfahren, in Multiuser- und –tasksystemen • Event Control: Verwaltung nur zu systemrelevanten Zeitpunkten, in Echtzeitsystemen und damit

Multitasksystemen, bei Ereigniseintritt (externe Unterbrechung, interner Aufruf) erfolgt Entscheidung, welcher Prozeß jetzt forzuführen ist

Virtuelle Maschine: • zur Ausführung eines Programms simulierte Funktion eines Rechners • gegenwärtige Prozessoren arbeiten sequentiell Widerspruch zu simultan zu lösenden Aufgaben • für jeden Prozeß eigener Prozessor emuliert • virtuelle Parallelmaschine, jeder Prozeß läuft auf eigenem Pseudoprozessor

Isabel Maine C. Drost Seite 9 von 29

Page 10: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Verwaltungsstrategien:

externes Ereignis: • Meldung des zu steuernden externen Prozesses an den steuernden Rechenprozeß, erfolgt meistens indirekt über

Verwaltungsprozeß (Bestandteil eines problemunabhängigen EchtzeitBSkerns • für Echtzeitsysteme entscheidend Ausrichtung des Steuerungsablaufes • Prozessorkapazität darf in Echtzeitsystemein nicht voll ausgeschöpft werden (20-30% üblich) Einführung eines

Leerlaufprozesses Begriff Echtzeit: nur für steuernden Prozeß relevant • Einhaltung der von den zu steuernden Prozessesn vorgegenen zeitlichen Bedingnungen durch steuernde

Rechenprozesse • Echtzeitbedingung erfüllt, wenn

- alle Rechenprozesse in zur Verfügung stehender Zeit bearbeitet - rechtzeitige Reaktion auf externes Ereignis erfolgt - keine Informationen verlorengehen

3 Das Echtzeitbetriebssystem MRT86 MRT86 – Multitask Realtime – Kernel für 80x86Prozessoren Smmlung von Funktionen für quasiparallele Prozesse auf Monoprozessorsystem Wichtige Eigenschaften: • dynmische Verwaltung von 1 ... 255 Prozessen • prioritätsgesteuerte Betriebsmittelverwaltung (v.a. für Prozessor) • zeit- oder ereignisssteuerung der Prozesse (ext./ int. Interupts) • für jeden Prozeß eigener Speicherbereich – Stack • Prozesskommunikation über Mailboxen • Prozesssynchronisation und –koordination über Semaphoren • strukturierte zeitoptimierte Verwaltungsaktionen Wichtige Verwaltungsrufe: • ACTIVATE_MRT86(EXITP, ERRC) ... aktiviert das Echtzeitsystem

exitp...Name der exitfkt.; errc ... Parameter für exitp (z.B. Fehlernummer) ist der erste Kernaufruf, Init der TaskControlblocks ITCB Zeitgeber auf 10ms umprogrammieren Start von idle

• START_PROCESS(PROC, PTY, SIZE, ADDR) Prozess starten, PROC ... Prozessnummer (1-255) PTY – Priorität (0-30) SIZE – Größe des belegten Speichers, Vielfaches von 256 byte

INACT RDY RUN

HOLD

BLOCK

BLOCK&HOLD

WAIT&HOLD

WAIT

stopstart

aw

ai t

Priorität

send

s

end

REQ - REL

s

t op

start

Abbildung 3-1; MRT86 Prozessmodell

• STOP_PROCESS(PROC) • HOLD_PROCESS()

Prozeß anhalten

• CONTINUE_PROCESS() • DELAY_PROCESS() • DELAY_ONCE(Proc_number, time_in_ms) • DELAY_CYCLIC() • ALTER_PRIORITY() • SEND_MESSAGE() • AWAIT_MESSAGE() • REQUEST_SEMAPHORE() • RELEASE_SEMAPHORE() • PLAN_EVENT()

Ereignisaktion planen (auf Int)

• MOVE_GLOBAL() globale Vriable lesen/ schreiben

Isabel Maine C. Drost Seite 10 von 29

Page 11: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Das Echtzeitbetriebssystem MRT86

• ENABLE_INTERRUPT() • DISABLE_INTERRUPT() • PROCESS_NUMBER() • PROCESS_STATUS()

Prozesszustand abfragen

• MESSAGE_AVAILABLE() Nachrichtenverfügbarkeit prüfen

Bsp. für C-Quellcode: ##iinncclluuddee <<mmrrtt8866..hh>> ...... vvooiidd mmaaiinn((vvooiidd)) {{ ...... AACCTTIIVVAATTEE__MMRRTT8866((eexxiitt,, 00));; ////CC--HHaauuppttpprroogg.. aallss PPrroozzeeßß 00 ...... }} Explizite Kerndeaktivierung: DEACT_MRT86() RETURN_CODE(1 ... Nummer des gestarteten Prozesses zurückgeben, 0 .. Prozess wurde nicht gestartet (bereits aktiv, Prozessstapel voll oder falsche Priorität) Funktion beim Prozeßstart: • der zu satrende Prozeß wird aktiviert – RDY • Aubau des Prozeßstapels (u.a. ADR bei Fortsetzungsadresse eintragen) • ist gestarteter Prozess höher priorisiert als startender – Prozessumschaltung • Fortsetzung des höchst priorisierten Prozesses, der RDY ist Beispiel: ##iinncclluuddee <<mmrrtt8866..hh>> PPRROOCCEESSSS PP11 {{ SSTTAARRTT__PPRROOCCEESSSS((22,, 00,, 00,, PP22));; SSTTOOPP__PPRROOCCEESSSS((00));; }} PPRROOCCEESSSS PP22 {{}} vvooiidd mmaaiinn ((vvooiidd)) {{ AACCTTIIVVAATTEE__MMRRTT8866((eexxiitt,, 00));; SSTTAARRTT__PPRROOCCEESSSS((11..55,, 00,, PP11));; }}

Isabel Maine C. Drost Seite 11 von 29

Page 12: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Prozessorverwaltung

4 Betriebsmittelverwaltung

4.1 Prozessorverwaltung Prozessor: Engpass des Systems Prozessoraufteilung von besonderer Bedeutung

4.1.1 Prinzipielle Steuerungsalgorithmen 1) Vollständige Bearbeitung in der Ankunftsreihenfolge – Stapelbetrieb

2) Vollständige Bearbeitung in der Prioritätsreihenfolge

Prozessor

Alaufender ProzessProzessorwarteschlange

F E D C BProzessor-aufrufProzeßstart

Prozessor-aufgabeProzeßstop

Prozessor-zuteilung

Abbildung 4-1; Betriebsmittelverwaltung - Stapelbetrieb

Es ist auch dann keine Unterbrechung möglich, wenn der derzeit laufende Prozeß niedriger priorisiert ist, als der aktuell höchstpriorisierte Prozeß, der Ready ist.

3) Prioritätsgesteuerte Bearbeitung mit Freigabe

Prozessor

Alaufender ProzessProzessorwarteschlange

B C E D FProzessor-aufrufProzeßstart

Prozessor-aufgabeProzeßstop

Prozessor-zuteilung9 8 6 4 2

nach fallender Priorität geordnet

5

Abbildung 4-2; Betriebsmittelverwaltung – Vollständige Bearbeitung in Prioritätsreihenfolge

4) Prioritätsgesteuerte Bearbeitung mit Prozessorentzug – preemptiv Scheduling

AProzessorwarteschlange

Prozessor-aufrufProzeßstart

Prozessor-aufgabeProzeßstop

Prozessor-zuteilung

E F

BM-Warteschlange

A B C

ProzessorfreigabeProzeßunterbrechungProzeßsuspendierungProzeßfreigabe

Abbildung 4-3; Betriebsmittelverwaltung – Prozeßumschaltung bei Warten auf BM

AProzessor-aufrufProzeßstart

Prozessor-aufgabeProzeßstop

Prozessor-zuteilung

E F

BM-Warteschlange

A B CProzessverdrängungProzessorentzug

Abbildung 4-4; Betriebsmittelverwaltung - Prozeßverdrängung

Isabel Maine C. Drost Seite 12 von 29

Page 13: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Betriebsmittelverwaltung

Prozeßverwaltung im MRT86: über einen TCB (Task – Control – Block) 0 1 2 3 4 Status RDY RDY HOLD RUN INACT Priorität 31 4 0 2 ... ... ... Zeiger auf nächsthöher priorisierten Prozeß NULL 0 1 Zeiger auf nächstniedrigeren Prozeß 1 3 Sobald ein neuer Prozeß in der Prozeßwarteschlange eintrifft, wird er in der Prozessorwarteschlange entsprechend seiner Priorität und seines Status eingeordnet. • Für die Verwaltung eines Prozesses in einem Echtzeitbetriebssystem kommt nur die vierte Art in Frage. • 3 Prinzipien des preemptiven Schedulings:

- Abfragesteuerung (Polling): "probeweise" Rückgabe des Prozessors in vernünftigen Zeitabständen dann Verwaltungsabschätzung

- Zeitsteuerung: zyklische Unterbrechung durch den Verwalter dann Verwaltungsentscheidung - Ereignissteuerung: Verwaltungsentscheidung nur bei Ereigniseintritt (Interrupt, Verwaltungsaufruf)

4.2 Speicherverwaltung • Unterscheidung zwischen globalem und lokalem Speicher • global: Variablen des Verwalters (TCB, Mailboxen, Stackliste, Zeitgeberschlangen, Semaphoren) • lokal: jedem Prozeß zugeordnete Variablen (u.a. generelle Registerinhalte bei Prozeßabschaltung)

Datensegment

Stacksegment

0000 Prozeßtabelle0900 Stacktabelle

0A00 Mailbox Zeitgeberliste MRT86 - Variable

xxxx globale Variable

ffff frei

ST SB SL SH ML MH NX UP RC

08000000

00FF

Status | Priorität0 RDY/RUN1 HOLD2 WAIT3 W&H4 Block5 B&H6 INACT

0 ... 31

Stack k

...

Stack iStack 0frei

Speicherorganisation

0000

FFFF

SBSH, SL

Abbildung 4-5; Speicherorganisation beim MRT86

Isabel Maine C. Drost Seite 13 von 29

Page 14: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Zeitgeberverwaltung

I

4.3 Zeitgeberverwaltung • in Echtzeitsystemen definierte relative Zeitlage von Aktionen

zueinander • Aufgabe kann nicht durch den Prozessor, sondern muß durch

einen Zeitgeber übernommen werden. • Anzahl der Zeitgeberkanäle ist begrenzt – Schaffung

mehrerer virtueller Zeitgeberkanäle (alle durch einen physischen Zeitgeber versorgt)

CTC - Interruptfreigabe

Prozessorunterbrechung

Zeitgeber aktiv.0.01 sImpulsgeber (CTC)

Zeitgeberschlange(RAM)

Prozeßfreigabeimpuls

Abbildung 4-6; Zeitgeberverwaltung

4.4 Ein-/ Ausgabeverwaltung • ist nicht Bestandteil des Echtzeitbetriebssystemskerns, sondern wird Treibern (die als spezielle Prozesse ablaufen)

überlassen • E/A-Kanäle werden speziellen Prozessen zugeordnet, die mit anderen Systemprozessen kommunizieren

Prozessverwalter bleibt somit problemunabhängig

4.5 Prozessorbelastung • worst-case Abschätzungen für die Prozessorbelastung erforderlich • Belastungen durch Anwender und durch Verwaltungsprozesse können nicht immer vernachlässigt werden Beispiel Prozessorbelastung durch Verwaltungsaktionen:

p ... Prozessorbelastung zwischen 0 und 1 (rel. Anteil) nkc *+ c ... konstanter Laufzeitanteil der Verwaltungsaktionen

T V 5

5••

5•

•• De Ea

sabel Maine C. Drost

Tp = k ... relativer, prozessbezogener Anteil an Verwaltungsaktionen

n ... Anzahl der Prozesse ... mittlere Zeit für eine Aktion

erschiebung der Kurve nach rechts für größeres n!

Beschreibung von Echtzeitsystemen

.1 Petrinetze zur anschaulichen Darstellung von nebenläufigen Systemen und der Wechselwirkun 1962 durch Petri (Dissertation) vorgestellt

.1.1 Petrinetze ohne Marken Der Platz, von dem aus eine Kante zu einer Transition führt, heißt

Eingangsplatz.

g

AbbilduMarke

Nächstgelegene Plätze sind Ausgangsplätze. Auf einem Pfad wechseln sich die Plätze und Transitionen ab.

er Platz stellt den Zustand eines Prozesses dar, während eine Transition inen Zustandswechsel darstellt.

s ist möglich aus verschiedenen Plätzen über eine Transition in verschiedene ndere Plätze zu gelangen.

p1

0 T

Seite 14 von 29

gen zwischen den Prozessen

Transition

Stelle/ Platz

erichtete Kanten

ng 5-1; Petrinetz ohne

Page 15: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Beschreibung von Echtzeitsystemen

Struktur eines Petrinetzes:

Knotenmengen sind disjunkt – der Durchschnitt aus Stellen und Transitionen ist Null. Knotenmenge enthält mindestens eine Stelle oder eine Transition. 0≠∪ TS

0=∩ TS

)()( TxSSxTF ∪⊆ die Kantenmenge F enthält nur Elemente, die Knoten verschiedener Mengen miteinander verbinden

Isolierte Netze repräsentieren unabhängige nebenläufige Systeme:

s t Abbildung 5-2; Isolierte Netze s und t

Zyklische Netze:

Abbildung 5-4; zyklisches Netz

Abbildung 5-3; zyklisches Netz

Platz: passive Systemkomponente Transition: aktive Systemkomponente Beispiel: Darstellung einer Bestellung

Bestellung Bestellaufnahme Lieferauftrag

Prod-Auftrag Produktion Lager

Auslieferung

Ware

Abbildung 5-5; Petrinetz für die Darstellung einer Bestellung

Verfeinerung von Einzelknoten – meistens Transitionen am Beispiel

Lieferauftrag

Lager

Auslieferung

Lieferschein-erstellung

Lieferschein

Verpackung VerpackteWare

Versenden

Ware

Abbildung 5-6; Verfeinerung der Transition Auslieferung

Isabel Maine C. Drost Seite 15 von 29

Page 16: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Petrinetze

Zusammenfassen von übergeordneten Teilnetzen zu Einzelknoten

Abbildung 5-7; Zusammenfassen von übergeordneten Teilnetzen zu Einzelknoten

5.1.2 Petrinetze mit Marken • werden verwendet zur Beschreibung der dynamischen Eigenschaften eines Systems • Dynamik durch veränderte Markierung der Plätze beschrieben Der Übergang von einer Markierung zur nächsten wird durch Schaltregeln (fire rules) beschrieben. Petrinetze mit Marken heißen Stellen – Transitionsnetze. Marken werden als Punkte in den Plätzen dargestellt. Die Anzahl der Marken ist nicht konstant: Nach dem Feuern wird von jedem Eingangsplatz eine Marke abgezogen und in jedem Ausgangsplatz eine hinzugefügt.

• falls keine Kantenwichtung angegeben ist, fließt beim Schalten von Transitionen über jede Kante genau eine Marke

Abbildung 5-8; Petrinetze mit Marken vor und nach dem Feuern

• fehlende Kapazitätsangabe für Plätze beschreiben ihre unendliche Kapazität

Nichtschaltende Transitionen:

2

3

2

3

Abbildung 5-9; Feuern von Petrinetzen mit Marken und gewichteten Kanten

3

1

Abbildung 5-11; Nichtschaltende Transition2

2

Abbildung 5-10; Nichtschaltende Transition 1

Isabel Maine C. Drost Seite 16 von 29

Page 17: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Beschreibung von Echtzeitsystemen

• Das Schalten der Transition erfordert keine Zeit, erfolgt schlagartig. • Im Allgemeinen wird keine Verweildauer für die Marken in Plätzen festgelegt. • Wenn alle Plätze ihre Maximalkapazität erreicht haben, nennt man das Netz todesgefährdet. (Also dann, wenn ein

Zustand erreicht werden kann, in dem keine Transition mehr schalten kann.) • In allen anderen Fällen heißt das Netz lebendig.

Abbildung 5-13; lebendiges Netz

Abbildung 5-12; todesgefährdetes Netz

Sichere und unsichere Netze Ein Netz nennt man dann sicher, wenn eine Erhöhung der Platzkapazitäten nicht zu mehr Schaltmöglichkeiten führt.

n

Abbildung 5-14; ein sicheres Netz

n

1

Abbildung 5-15; unsicheres Netz

5.1.3 Wozu werden Petrinetze benutzt? • Darstellung von Nebenläufigkeiten von Prozessen • Darstellung von Synchronisations- und Kommunikationsmethoden

Darstellung der Nebenläufigkeit von Prozessen im Petrinetz tt11;; ccoonncc tt22 |||| tt33 eenndd ccoonncc;; tt44;; Auf eine Transition t1 folgen parallel t2 und t3, danach t4. Darstellung im Netz wie folgt:

t1

t2

t3

t4

Abbildung 5-16; Nebenläufige Prozesse

Darstellung eines nichtdeterminierbaren Auswahl von Zustandswechseln: tt11;; sseelleecctt tt22||||tt33 eenndd sseelleecctt;; tt44

Isabel Maine C. Drost Seite 17 von 29

t1

t2

t3

t4

Abbildung 5-17; nichtdeterministische Auswahl

Page 18: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Petrinetze

Beschreibung des wechselseitigen Ausschlusses in Petrinetzen P1: t1; crit k do t2 end crit; t3 P2: t1; crit k do t2 end crit; t3

t1 t4

P1

crit t2 end crit

t1 t4

P1

crit t2 end crit

Abbildung 5-19; Beschreibung von wechselseitigem Ausschluss

t1 t4

P1

crit t2 end crit

t1 t4

P1

crit t2 end crit

Abbildung 5-18; wechselseitiger Ausschluß unter Nutzung einer gemeinsamen Semaphore

einseitige Synchronisation ProzeßA: t1; set b; t2; ProzeßB: t3; await b; t4;

b

Prozeß A

Prozeß B

await b

set b t2t1

t3 t4 Abbildung 5-20; einseitige Synchronisation

zweiseitige Synchronisation Prozess A: t1; set b; await c; t2; Prozess B: t3; set c; await b; t4;

b

Prozeß A

Prozeß B

set bt1

t3 t4

t2await c

await bset c

c

Abbildung 5-21; zweiseitige Synchronisation

Isabel Maine C. Drost Seite 18 von 29

Page 19: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Beschreibung von Echtzeitsystemen

Client – Server – Beziehung

A: t1; send a; await f; t2; B: t3; receive a; t4; send f;

Leser – Schreiber – Beziehung

b

Prozeß A

Prozeß B

set bt1

t3 t4

t2await c

await b set c

c

Abbildung 5-22; Client – Server – Beziehung

Leser 1

Un

kritischEintritt

Kritis

ches Lesen

Austritt

Leser 1

Un

kritischEintritt

Kritis

ches Lesen

Austritt

Leser 2

Unkritis

ch

Eintritt

Kritisches

Lesen

Austritt

Leser 3

Unkritisch

Eintritt

Kritis

ches Lesen

Austritt

Unkritisch

Eintritt

Kritisches Lesen

Austritt

Abbildung 5-23; Leser – Schreiber – Beziehung mit drei Lesern

Isabel Maine C. Drost Seite 19 von 29

Page 20: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Petrinetze

Speisende Philosophen

Philosoph 1

denkt

speist

Philosoph 3

denkt

speist

Philosoph 4

denkt

speist

Philosoph 2

denkt

speist

Philosoph 5

denkt

speist

G

abel 1

G

abel 2

G

abel 3

Gabel 4

G

abel 5

Abbildung 5-24; Die speisenden Philosophen – einzige Verklemmungsmögichkeit: Jeder Philosoph sitzt mit einer Gabel/ Stäbchen da und kann noch nicht essen.

5.1.4 Petri – Netze mit unterscheidbaren Marken – Prädikatstransitionsnetz• Petrinetze mit vielen gleichartigen Abläufen (wie oben) legen nahe, das Petrinetz zu

falten und die gleichartigen Teile dabei übereinanderzulegen Probleme bei der Faltung: • Gabeln werden nicht unterschieden (Die Philosophen können derzeit irgendeine

Gabel nehmen, die evtl. gar nicht neben ihnen liegt) • Auch die Prozesse werden nicht unterschieden. Lösung: Einführung von unterscheidbaren Marken. Bei der Verwendung von unterscheidbaren Marken, müssen auch die Transitionen um Schaltbedingungen und Schaltwirkungen er-weitert werden.

denkt

speist

12 3

4

5i

i

g1, g2

12 3

4

5

Gabel

g1=ig2=i%5+1

Isabel Maine C. Drost

e Philosoph 3

denkt

speist

G

abeln

5

22

i

ig1=ig2=i%5+1

g1, g2n

x

y

z

358

17

142

410

x=2y

z=2x+y

BedinungWirkung

x

y

z

35

817

142

4

10

x=2y

z=2x+y

vor dem Schallten

nach dem Schalten

20

Seite 20 von 29

Page 21: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Beschreibung von Echtzeitsystemen

5.2 Formale Beschreibungen und Zeitdiagramme Beschreibungstechnik muß folgende Aufgaben erfüllen: 1) verteilte Problemstellungen und verteilt operierende Algorithmen bearbeiten 2) Systeme und Algorithmen unter Verwendung von verteilten Berechnungen analysieren 3) Systeme und Verfahren zur Deadlockbehandlung einheitlich darstellen Gesamtfunktionalität eines Echtzeitsystems besteht aus den Teilen : • Basisfunktionalität • Deadlockbehandlung

5.2.1 Ereignisse und Prozesse • sind zentrale Elemente der Beschreibung von Echtzeitsystemen • Funktionalität von Systemen wird durch Ereignisse beschrieben, die von Prozessen zur Laufzeit erzeugt werden. • die räumliche und zeitliche Ausprägung der Gesamtheit der Ereignisse heißt verteilte Berechnung Ereignis: ... ist ein einmaliges Geschehnis, das genau zu einem Zeitpunkt und an einem genau definierten Ort eintritt. Ein Ereignis ist ein Punkt in der RaumZeit. Ereignisse dauern keine Zeit (Dimension 0) Prozeß: ... ist eine sequentielle Folge von Ereignissen, zur grafischen Veranschaulichung von Prozessverläufen werden häufig Zeitdiagramme benutzt. Z.B.: Telefonat:

T t

Hörer abnehmen (1)Nummer wählen(2)

Verbindung aufgebaut(3)

Gespräch beenden (4)Hörer auflegen(5)

Abbildung 5-29; Zeitdiagramm zu einem Telefonat

Ereignisse können formal folgendermaßen beschrieben werden: Ein Prozeß Pi ist beschrieben durch das Tupel (εi, <i) mit der Ereignismenge εi und der lokalen Ordnung <i auf der Ereignismenge. Es gilt e<f (e findet vor f statt) für Ereignisse e, f ει genau dann, wenn e vor f stattfindet. Beispiel dafür anhand des Telefonates: T=(εT, <i) εT={1, 2, 3, 4, 5} <T={(1, 2), (2, 3), (3, 4), (4, 5)} Sind e, f ειEreignisse eines Prozesses Pi und gilt e<f, so ist das von ihnen gebildete Zeitintervall [e, f] (geschlossenes Intervall).

Pi

Pj

t

t

(i:s(M,j)) = Sendeereignis

(j:r(M,i)) = Empfangsereignis Abbildung 5-30; Sende- und Empfangsereignisse

Ereignis = Zustandswechsel Zeitintervall = Prozeßzustand Prozesse laufen in Systemen nicht isoliert ab, sondern haben Wechselwirkungen mit anderen Prozessen. Hierbei wird die Ereignisreihenfolge zweier Prozesse eingeschränkt: • ein Prozess setzt ein Sendeereignis ab (Nachricht),

während ein zweiter Prozess ein Empfangsereignis erhält (Nachrichtenempfang)

Pi

Pj

t

t

(i:s(M,X)) = Sendeereignis

(j:r(M,i)) = EmpfangsereignisPk

t

Plt

(k:r(M,i)) = Empfangsereignis

(l:r(M,i)) = Empfangsereignis Abbildung 5-31; Broadcast von Ereignissen

• werden als korrespondierende Kommunikationsereignisse bezeichnet.

Isabel Maine C. Drost Seite 21 von 29

Page 22: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Formale Beschreibungen und Zeitdiagramme

Prozesssynchronisation am Beispiel des Telefonats:

5PA IEu Ee D B BFr((r( C((( 2 ( (

I

t

t

Nummer wählen

Telefon klingelt

T

U

Hörer abnehmen

Hörer abnehmen

Verbindung aufgebaut

.2.2 Systembeschreibung durch Ereignisse

rozeßsystem mit den Eigenschaften SEQ und X (SEQ ... sequentielle nforderungen, X ... Zugriffe auf die Betriebsmittel sind exklusiv)

m System existieren dann 2 aktive Komponenten: Prozesse = aktive inheiten des Systems; Controller = Komponente zur Steuerung der Prozesse nd Verwaltung der Betriebsmittel.

Prozesse

Controller

Request Reply

Abbildung 5-33; Prozesse und

in Request ist eine Anforderungsnachricht an den Controller, währendessen in Reply die dazugehörige Bewilligung ist.

ie Freigabe des BM erfolg durch ein release:

t

t

Pi

C

start

req(R) req(S)

grant(R) grant(S)

rel(R) rel(S)

Controller eispiel: Kreuzung mit gleichrangigen Straßen:

eschreibung der Aktionen durch Pseudocode: ahrzeug F eq(R) F: s(req(R), C)) F:r(grant(R), C)) // benutzen el(R) F:s(rel(R), C))

ontroller (1. Ansatz) C:r(req(R), F) C:s(grant(R),F)) C:r(rel(R), F) gebe R frei

. Ansatz

C:r(req(R), F) if(free[R]=true then (C:s(grant(R), F)) free[R]=false

C:r(rel(R), F)) free[R]=true

sabel Maine C. Drost

R3 R2

R4 R1

C

F1

R1req(R1) req(R2)

grant(1) grant(2)

fahren rel(R1) rel(R2)

Seite 22 von 29

Page 23: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Beschreibung von Echtzeitsystemen

Isabel Maine C. Drost Seite 23 von 29

Die Verklemmung ist nur zu verhindern, indem die Betriebsmittel-vergabe en bloc realisiert wird. (Req(R1, R2, R3). 3. Ansatz für den Controller (mit Warteschlange) (C:r(req(R), F)) if(free[R]) then (C:s(grant(R), F)); free[R]=false else append(waits(R), F) (C:r(rel(R), F)) free[R]=true if(waits(R)!=nil then

(C:s(grant(R), head(waits(R)))) free[R]=false

F1

C

F2

req(R1)Req(R2)

Req(R2)Req(R3) rel(R2), (R3)

rel(R1, R2)

Linksabiegen

F1

C

F2

req(R1)Req(R3)

Req(R3)Req(R4) req(R1)Verklemmung, da beide das BM haben wollen, das derjeweils andere schon hat! Abbildung 5-37; Ein verklemmter Controller

Atomare Ausführung von Aktionsfolgen

F1

C

F2

R1

R2 ... Request wird etwas verzögert,da die Aktionen des Controllers (bestehendaus receive request und send grant atomar sein müssen!)

F1

C

F2

R1

R2

R2

R3R2

Die Bewilligung für ein freiesBM muß sofort erfolgen, genauer: bevor eine neue Anforderungfür deses BM eintrifft

Abbildung 5-38 Atomare Ausführung von Aktionsfolgen

Verteilte Berechnungen:

i

j

k

e1 e2 e3 e4

e5 e6 e7 e8 e9 e10

e11 e12 e13 e14 e15 Abbildung 5-39; Verteilte Berechnungen

Verteilte Berechnung = Tripel(P, ε,<) (P = Prozessmenge, ε=globale Ereignismenge, < = Ordnungsrelation der Ereignisse) εi heißt lokale Ereignismenge des Prozesses i < heißt partielle Ordnung der Ereignismenge mit e<f, wenn gilt:

• e und f sind Ereignisse genau eines Prozesses • oder e ist Sende- und f ist korrespondierendes Empfangsereignis

e und f heißen nebenläufig, falls sie in < nicht geordnet sind: e||f ⋅(e<f) Ν⋅(f<e) andernfalls heißen sie geordnet in <. Beispiel: siehe obiges Bild: 1) Ereignisse eines Prozesses sind vollständig geordnet (z.B.: e1<e2 oder e12<e14) 2) Ereignisse verschiedener Prozesse können geordnet sein, z.B. durch korrespondierende Sende und Empfangsereig-

nisse (z.B.: e5 < e2, e1 < e8) 3) Ereignisse können durch die Transitivität von < geordnet sein (z.B.: e1<e15, e12<e7) 4) In < nicht geordnete Ereignisse sind nebenläufig (z.B.: e1|| e6)

Page 24: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Echtzeitbetrieb

Kausalität von Ereignissen:

Zwei Ereignisse sind kausal, wenn sie einerseits nacheinander stattfanden, e kann f dann kausal beeinflus-sen. Und andererseits ein Weg vom früheren zum späteren Ereignis exisitert. e vor f sowie es existiert ein Ereignispfad von e nach f. Das Ereignis e kann f kausal beeinflußen, muss aber nich – beachte dazu auch: Nicht jeder, der zur Tatzeit am Tatort gewesen sein könnte, ist automatisch der Täter! Sige

Raum

Zeit

Aktivität Täter

Tat

möglicher Aufenthaltsortdes Verdächtigen

scheidet als Verdächtiger aus Abbildung 5-40; Kausalität am Beispiel eines Verdächtigen

nd e, f ∈ε, so heißt e potentiell kausal abhängig von f nau dann, wenn f<e.

Die Menge der Ereignisse, von denen e potentiell kausal abhängig ist, heißt Vergangenheit von e: Pe={f|f<e} (für

die Menge der Ereignisse gilt: f fand vor e statt und es existiert ein Weg von f zu e. Ein Ereignis f, das stattgefunden haben muss, bevor Ereignis e stattfindet, heißt Voraussetzungsereignis von e: e f (e ∈ε f ∈ε∧f<e) (erster Pfeil : !...: - zu malen) FIFO Eigenschaften von Kommunikationskanälen:

Ein Schnappschuß s einer verteilten Berechnung (P, ε, <) ist eine Teilmenge der globalen Ereignismenge s⊂ε. Ein Schnappschuß heißt dann konsistent, wenn gilt (∀e, f∈ε) (s ∧ f<e)

P

Q

Fifo - Kanal verboten!

Schappschüsse

P

Q

R1

R2

R2

R3 rel(R2, R3)

Momentanschnappschüssedes Prozesssystems, aufgrundtechn. Grenzen können IRLInkonsitenzen auftreten

Abbildung 5-41; Fifo – Eigenschaften und Systemschnappschüsse

Ein Schnappschuß teilt partitioniert die Ereignismenge in solche, die vor und solche, die nach dem Betrachtungszeitpunkt stattfinden. Ein Schnappschuß ist konsitent, falls für jede Empfangsoperation auch die korrespondierende Sendeoperation stattgefunden hat. Beispiel: erster, zweiter und dritter sind konsitent, da keine Kommunikationskanten gekreuzt werden. Die andere ist inkonsitent, da zu dem im Schnappschuss liegenden Empfangsereignis kein zugehöriges Sendeereignis stattgefunden hat.

6 Entwurf von Echtzeitsystemen

6.1 Echtzeitbetrieb • Rechenlage steht über Peripheriegeräte mit der Umwelt in Verbindung • sie muß auf Eingaben aus der Umwelt innerhalb einer vorgegebenen Frist mit Ausgaben reagieren • Korektheit des Echtzeitsystems schwer nachzuweisen, da Anforderungszeitpunkte zufällig sind, daher häufig

Worst-Case – Analyse angewendet • Nachteil dieser Analysemethode: Häufigkeit, evtl. Zeitpunkt und Dauer der eintreffenden Ereignisse müssen

bekannt sein.

Isabel Maine C. Drost Seite 24 von 29

Page 25: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Entwurf von Echtzeitsystemen

• jedoch Dauer ist oft programmiersprachen-/übersetzungsabhängig max 30-50% Auslastung, Lastspitzen werden

aufgefangen Multitaskingsystem/ Multiusersysteme sind „Grundlastkraftwerke“

6.2 Zeitbedingungen • Unterscheidung der Echtzeitsysteme nach zu erfüllenden Zeitbedingungen: Harte Zeitbedingungen: stehen präzise fest, Übertretungen können wirtschaftliche Verluste oder Personenschäden nach sich ziehen. (Bsp.: Industrierobotersteuerung) Weiche Zeitbedinungen: sind nicht genau festgelegt, Übertretungen verursachen zwar Störungen, jedoch wird das Betriebsziel, wenn auch evtl. mit Verspätung, noch erreicht. (z.B. Flugbuchung mit mehrfach vergebenen Plätzen) In der Prozeßdatenverarbeitung vorwiegend harte Zeitbedingungen: Umgebung = techn. Prozeß, Rechenanlage = Prozeßrechner. Im Prozeßrechner befindet sich ein Modell des techn. Prozesses: relevate Größen eines techn. Prozesses heißen Prozeß-größen, während die aktuellen Werte als Prozeßdaten bezeichnet werden. Bei der Zeitanalyse in Echtzeitsystemen muß die benötigte Rechenzeit mit der maximalen Antwortzeit verglichen werden.

Materialtechn. Prozeß

EnergieProdukt

Prozeß-rechner

MeßwerteMeßwerte Steuersig.

Aufgaben des Prozeßrechners:Überwachen (blau)Steuern (rot)Regeln (rot und blau)

Abbildung 6-1; Zusammenspiel von Prozeßrechner und techn. Prozeß

Beispiel: Meßwerterfassung mit definierter Abtastrate Anmerkung: im System existiert als größte relevante Frequenz fmax Shannon-Theorem: Abtastfrequenz fs >= 2fmax; Praktisch: fs=5 ... 10 * fmax zyklische Ausführung folgender Aktivitäten: A1´... Messung der Temperatur mit Zykluszeit T1 A2 ... Messung des Drucks mit Zykluszeit T2 A3 ... Abfrage der Schalterstellung mit Zykluszeit T3

tT1 T2 T35T14T1

3T12T1

A1A1A1 A2A1 A2 A3A1A2 A3 A1T1:T2:T3 = 1:2:4 Aktionen A haben gleiche Dauer aber unterschiedliche Häufigkeit: Spitzenlast im Intervall: [4kT1, (4k+1)T1] k aus N Prozeßdaten häufig durch Unterbrechungsbehandlung eingegeen und daraus Ausgabewerte abgeleitet. Prozeßrechner reagiert mit Verzögerung.

Unterbrechungswerk(z.B. E/A-Kanal, Bus,PIC, ...)

ProzessorHW

SW

T1 T2

t1 t2 t3 t4 t5 t6

t1 … Unterbrechungssignal kommt im Unterbrechungswerk ant2 … Unterbrechungssignal zum Prozessor gemeldett3 … laufender Prozeß wird unterbrochent4 … Unterbrechungsbehandlung beginnt

T3

T4

T5

lfd. Prozeß

Abbildung 6-2; Unterbrechungsbehandlung

• T1 ... Durchlaßzeit • T2 ... Latenzzeit • T3 ... Erkennungszeit • T4 ... Ausführungszeit • T5 ... Rückkehrzeit T1+T2+T3 ... Reaktionszeit T1+T2+T3+T4 ... Antwortzeit T3+T4+T5 ... Unterbrechungszeit

Isabel Maine C. Drost Seite 25 von 29

Page 26: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Zeitgerechte Einplanung

Isabel Maine C. Drost Seite 26 von 29

6.3 Zeitgerechte Einplanung

tA tS tetz

Laufzeit

t0

Restlaufzeit (l(t0))

Spielraum s(t0)

Restantwortzeit a(t0)

Abbildung 6-3; Zeitgerechte Einplanung – Gant-Diagramm

Es müssen hier bekannt sein: - frühester Startzeitpunkt tA - tatsächlicher Startzeitpunkt ts (ts>=ta) - spätester Endzeitpunkt tz - tatsächlicher Endzeitpunkt tE (tE<=tz) - häufig statt tz Restantwortzeit a(t) angegeben: a(t) = tz – t - Restlaufzeit l(t) gibt die Zeitdauer bis zur Beendigung der

Aktionen an: für t<ts gilt: l(t)=L (L ... Laufzeit der Aktion) - Spielraum s(t) ist die Differenz von Antwortzeit und

Laufzeit der Aktion s(t)=a(t) – l(t)

6.3.1 Planung für Einprozessorsysteme • bei Einplanung von Prozessen (Aktionen), bei der alle

vor ihrem spätesten Endzeitpunkt tz beendet sind, heißt zeitgerecht (timely)

• gesucht ist ein Algorithmus, für die zeitgerechte Einplanung

Prinzipielle Planungsverfahren:

1) Einplanung nach Vorabprioritäten 2) Einplanung nach Antwortzeiten (relativ aufwendig)

3) Einplanung nach Spielraum (am günstigsten:

Berücksichtigung der Restlaufzeit)

Laufzeit von P1

P2

P3

Einzuplanende Prozesse

spätester Endzeitpunkt

P2P3

Einplanung nach Antwortzeit

Spielraum

P2 P3

Bei 2 und 3 müssen à priori Laufzeit, Startzeit und Endzeit jedes Prozesses bekannt sein. Spontane Anforderungen aus technischem Prozeß werden nicht abgedeckt. Aus diesem Grund wird meist 1. eingesetzt (damit steuerbar, dass systemrelevante Funktionen garantiert sind.

6.3.2 Planung für Meterprozessorsysteme

Laufzeit von P1

P2

P3

Einzuplanende Prozesse

spätester Endzeitpunkt

P2

P3

Einplanung nach Antwortzeit

Spielraum

P2 P3

Prozessor 1

Prozessor 2

Prozessor 1

Prozessor 2

Antwortzeitverletzung

Zeitgerechte Einplanung

Page 27: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Entwurf von Echtzeitsystemen

Isabel Maine C. Drost Seite 27 von 29

P2

P3

Einzuplanende Prozesse

Spielraum

Prozessor 1

Prozessor 2

P5

P6

P7

P2 P5 P6

P7

P2

P1

P3

P4

P5

P6

P7

P2

Keine Antwortzeitverletzung, da der Prozess 2 auf beideProzessoren verteilt wird.

Abbildung 6-5; zeitgerechte nicht-algorithmische Lösung

P2

P3

Einzuplanende Prozesse

Spielraum

Prozessor 1

Prozessor 2

P5

P6

P7

P2

P3

P5

P3

P6

P7

P2

P1

P3

P4

P5

P6

P7

Antwortzeitverletzung

Abbildung 6-4; nicht zeitgerechte algorithmische Lösung: Verteilung von 7 Prozessen auf zwei Prozessoren

6.3.3 Zeitangaben in Programmen • Vorgabe der Zeiten:

a) absolut (z.B.: „um 8.30“) b) relativ (z.B.: „in 15 min“ oder „alle 15 min“)

• Programmiersprache PEARL bietet hier die besten Möglichkeiten Besitzt zwei elementare Datentypen: DURATION (Zeitdauer), CLOCK (absoluter Zeitpunkt) Beispielinitialisierungen:

DCL messdauer DURATION INIT (2HRS, 25MIN, 32.5SEC); prodbeginn CLOCK INT(6 :30 :32.6) ;

• werden zur zeitgerechten Einplanung verwendet (z.B. Prozeßstart, -fortsetzung, -verzögerung, -beendigung) • verschiedene Einplanungen:

zeittaktbezogene relative Zeit für Steuerbarkeit (evtl. Periodendauer bei zyklischer Einplanung), z.B.: AFTER D1 ALL D2 DURING D3 [zu erledigende Aktivität] D1 ... D3 sind hier vom Typ Duration

AFTER 10 SEC ALL 5 MIN DURING 3 HRS [Aktivität, die in 10 Sekunden alle 5 min 3h lang auszuführen]

Systemzeitbezogene Einplanungen absoluter Zeitpunkt der Steueraktivität, z.B.: AT C1 EVERY D UNTIL C2 [Aktivität];

D vom Typ DURATION; C1, C2 vom Typ CLOCK) AT 8:30:00 EVERY 5 MIN UNTIL 10:00:00 ACTIVATE P1;

• in Ada existiert lediglich die Selbstverzögerung eines Prozesses, z.B.: delay 20; // Prozeß verzögert sich um 2 Sekunden

• unter Verwendung der Absolutzeit (Bibliothekseinheit CALENDAR) sind beliebige Einplanungen nachzubilden

Page 28: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echteitverarbeitung Zeitgerechte Einplanung

Isabel Maine C. Drost Seite 28 von 29

Page 29: Echtzeitverarbeitung - Isabel Drost-Frommisabel-drost.de/bin/Echtzeitverarbeitung.pdfSemaphoren sind häufig binär (z.B. µP – INT – FF), manchmal aber auch mehrwertig (Wertevorat

Echtzeitverarbeitung Entwurf von Echtzeitsystemen

Abbildung 2-1; Ein System in seiner Umwelt .....................................................................................................................6 Abbildung 2-2; Visualisierung der Prozessarten ...............................................................................................................6 Abbildung 3-1; Beispiel für einen binären Semaphor ........................................................................................................8 Abbildung 3-2; Visualisierung der atomaren Funktion p...................................................................................................8 Abbildung 3-3; Visualisierung der atomaren Funktion v...................................................................................................8 Abbildung 4-1; MRT86 Prozessmodell.............................................................................................................................10 Abbildung 5-1; Betriebsmittelverwaltung - Stapelbetrieb ................................................................................................12 Abbildung 5-2; Betriebsmittelverwaltung – Vollständige Bearbeitung in Prioritätsreihenfolge .....................................12 Abbildung 5-3; Betriebsmittelverwaltung – Prozeßumschaltung bei Warten auf BM......................................................12 Abbildung 5-4; Betriebsmittelverwaltung - Prozeßverdrängung .....................................................................................12 Abbildung 5-5; Speicherorganisation beim MRT86.........................................................................................................13 Abbildung 5-6; Zeitgeberverwaltung ...............................................................................................................................14 Abbildung 6-1; Petrinetz ohne Marke ..............................................................................................................................14 Abbildung 6-2; Isolierte Netze s und t ..............................................................................................................................15 Abbildung 6-3; zyklisches Netz.........................................................................................................................................15 Abbildung 6-4; zyklisches Netz.........................................................................................................................................15 Abbildung 6-5; Petrinetz für die Darstellung einer Bestellung........................................................................................15 Abbildung 6-6; Verfeinerung der Transition Auslieferung...............................................................................................15 Abbildung 6-7; Zusammenfassen von übergeordneten Teilnetzen zu Einzelknoten .........................................................16 Abbildung 6-8; Petrinetze mit Marken vor und nach dem Feuern ...................................................................................16 Abbildung 6-9; Feuern von Petrinetzen mit Marken und gewichteten Kanten.................................................................16 Abbildung 6-10; Nichtschaltende Transition 1 ................................................................................................................16 Abbildung 6-11; Nichtschaltende Transition2 .................................................................................................................16 Abbildung 6-12; todesgefährdetes Netz............................................................................................................................17 Abbildung 6-13; lebendiges Netz......................................................................................................................................17 Abbildung 6-14; ein sicheres Netz....................................................................................................................................17 Abbildung 6-15; unsicheres Netz......................................................................................................................................17 Abbildung 6-16; Nebenläufige Prozesse ..........................................................................................................................17 Abbildung 6-17; nichtdeterministische Auswahl ..............................................................................................................17 Abbildung 6-18; wechselseitiger Ausschluß unter Nutzung einer gemeinsamen Semaphore...........................................18 Abbildung 6-19; Beschreibung von wechselseitigem Ausschluss.....................................................................................18 Abbildung 6-20; einseitige Synchronisation.....................................................................................................................18 Abbildung 6-21; zweiseitige Synchronisation ..................................................................................................................18 Abbildung 6-22; Client – Server – Beziehung ..................................................................................................................19 Abbildung 6-23; Leser – Schreiber – Beziehung mit drei Lesern.....................................................................................19 Abbildung 6-24; Die speisenden Philosophen – einzige Verklemmungsmögichkeit: Jeder Philosoph sitzt mit einer Gabel/ Stäbchen da und kann noch nicht essen................................................................................................................20 Einseitige Synchronisation in C .........................................................................................................................................8 Zweiseitige Synchronisation und wechselseitiger Ausschluß .............................................................................................9

Isabel Maine C. Drost Seite 29 von 29