6 Echtzeit-Betriebssysteme - Universität Stuttgart

ias.uni.stuttgart.de

6 Echtzeit-Betriebssysteme - Universität Stuttgart

Kapitel 6: Echtzeit-Betriebssysteme

AT1

§ 6 Echtzeit-Betriebssysteme

Lernziele:

– Wissen, was ein Betriebssystem ist

– Erklären können, was man unter Betriebsmitteln versteht

– Die Aufgaben eines Echtzeit-Betriebssystems kennen

– Verstehen, was Interrupts sind

– Erklären können, wie die Speicherverwaltung arbeitet

– Das Vorgehen bei der Entwicklung eines Mini-Betriebssystems kennen

– Den Aufbau eines Beispiel-Mini-Betriebssystems verstanden haben

– Wissen, wie das Mini-Betriebssystem funktioniert

– Die Erweiterungen des Mini-Betriebssystems verstanden haben

– Die Abläufe im Mini-Betriebssystem nachvollziehen können

– Eine Übersicht über Echtzeit-Betriebssysteme erhalten

© 2013, IAS Universität Stuttgart 341


AT1

§ 6 Echtzeit-Betriebssysteme

6.1 Begriffsbestimmung

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

6.5 Beispiele für Echtzeit-Betriebssysteme

© 2013, IAS Universität Stuttgart 342


6.1 Begriffsbestimmung

AT1

Definition

Definition DIN 44300:

Betriebssysteme sind die Programme eines digitalen Rechensystems, die

zusammen mit den Eigenschaften der Rechenanlage die Grundlage der

möglichen Betriebsarten des digitalen Rechensystems bilden und

insbesondere die Abwicklung von Programmen steuern und überwachen.

Betriebssystem

– Systematisch aufgebaute Sammlung von Steuerungsund

Hilfsprogrammen

– Zuteilung der vorhandenen Betriebsmittel zu den konkurrierenden

Rechenprozessen

Scheduling

– Erleichterung der Bedienung und Programmierung des Rechners

und der angeschlossenen Geräte für den Anwender

Treiber

© 2013, IAS Universität Stuttgart 343


6.1 Begriffsbestimmung

AT1

Eigenschaften von Betriebssystemen

– Realisierung der hardwareabhängigen Aufgaben

– häufig Mitlieferung vom Hersteller des Rechners

effizientes Betriebssystem setzt genaue Kenntnis der

Hardwarestruktur voraus

vielfach für ganze Rechnerlinie

Amortisierung der hohen Entwicklungskosten eines

Betriebssystems

– Größe



mehrere kB bei Mikrorechnern

mehrere Hundert GB bei Großrechnern

– Integration klassischer Betriebssystembestandteile in Form von

Halbleiterchips

© 2013, IAS Universität Stuttgart 344


6.1 Begriffsbestimmung

AT1

Betriebsmittel

– Objekte, die Rechenprozesse während des Ablaufs benötigen

und auf deren Zuteilung sie warten müssen

– Geräteeinheiten

Prozessoren

Speicher

Peripheriegeräte wie Drucker

– Systemprogramme

© 2013, IAS Universität Stuttgart 345


6.1 Begriffsbestimmung

AT1

Kategorien von Echtzeit-Betriebssystemen (1)

Echtzeit-UNIX / POSIX-konforme Systeme

Portable Operating System Interface: IEEE 1003 / IEC 9945-Standard

für Schnittstelle zwischen Applikation und Betriebssystem

Kompatibel zu UNIX-System V

Erweiterungen um Echtzeitfunktionalitäten in IEEE 1003.1

Einsatz bei Prozessleitsystemen

Echtzeit-Kernel

UNIX-kompatibler Mikro-Kernel mit

- Speicherverwaltung

- Interruptverarbeitung

- Scheduler

- Taskverwaltung

- Schnittstellen auf der Basis von TCP/IP

optimal an Anforderungen angepasst

gut optimierter Code für unterschiedliche Plattformen

Bsp.: VxWorks, QNX

© 2013, IAS Universität Stuttgart 346


6.1 Begriffsbestimmung

AT1

Kategorien von Echtzeit-Betriebssystemen (2)

Echtzeit-Betriebssystemerweiterungen

Erweiterung von Nicht-Echtzeit-Betriebssystemen

Bibliothek zur Einhaltung der Echtzeitbedingungen

– Reine Echtzeit-Betriebssysteme

sehr effizient

flexibel konfigurierbar

vom Aufbau/Erscheinungsbild her an UNIX orientiert

oftmals spezifisch auf Problembereiche angepasst

Bsp.: FreeRTOS, ERCOS EK

© 2013, IAS Universität Stuttgart 347


6.1 Begriffsbestimmung

AT1

Frage zu Kapitel 6.1

Was sind die Aufgaben der Rechenprozess-Verwaltung eines

Betriebssystems?

Antwort





Erzeugung von Prozessen auf Anforderung des Betriebssystems.

Erzeugung von Prozessen auf Anforderung anderer Prozesse.

Kommunikation zwischen Prozessen.

Entfernung von Prozessen.

© 2013, IAS Universität Stuttgart 348


AT1

§ 6 Echtzeit-Betriebssysteme

6.1 Begriffsbestimmung

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

6.5 Beispiele für Echtzeit-Betriebssysteme

© 2013, IAS Universität Stuttgart 349


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Aufgaben eines Echtzeit-Betriebssystems

Verwaltung von Rechenprozessen und Betriebsmitteln unter Erfüllung der

Forderungen nach Rechtzeitigkeit, Gleichzeitigkeit und Effizienz

Betriebssystemfunktionen

– Organisation des Ablaufs der Rechenprozesse (Scheduling)

– Organisation der Interruptverwaltung

– Organisation der Speicherverwaltung

– Organisation der Ein-/Ausgabe

– Organisation des Ablaufs bei irregulären Betriebszuständen und des

(Wieder-) Anlaufs

© 2013, IAS Universität Stuttgart 350


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Schichtenarchitektur eines AT-Computersystems

Automatisierungsprogramme

Rechenprozess

1

Rechenprozess

2

Rechenprozess

n

Betriebsmittel

Betriebsmittel

1

Betriebsmittel

2

Betriebsmittel

m

Echtzeit-Betriebssystem

Verwaltung der

Rechenprozesse:

Verwaltung

der Betriebsmittel:

anmelden,

beauftragen,

einplanen,

beenden,

usw.

bekanntgeben,

erzeugen,

anfordern,

belegen,

freigeben,

usw.

© 2013, IAS Universität Stuttgart 351


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Rechenprozess-Verwaltung

Arten von Rechenprozessen

– Anwenderprozesse

– Systemprozesse




zentrale Protokollierung

Verwaltung von Speichermedien

Null-Prozess

Aufgaben bei der Rechenprozess-Verwaltung

– Koordinierung des Ablaufs von Anwender- und Systemprozessen

– Parallelbetrieb möglichst vieler Betriebsmittel

– Abarbeitung von Warteschlangen bei Betriebsmitteln

– Synchronisierung von Anwender-Systemprozessen

– Vermeidung, Entdeckung und Behebung von Deadlocks

© 2013, IAS Universität Stuttgart 352


Steigende Prio

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Interrupt-Verwaltung

– Unterbrechung des geplanten Programmablaufs

– Beauftragung einer Behandlungsroutine

Geplanter Programmablauf: (ohne Interrput)

Steuerungsprogramm

t

Tatsächlicher Ablauf: (mit Interrupt)

Interrupt 1

ISR 1

Interrupt Service Routine

Steuerungsprogramm

Steuerungsprogramm

t

© 2013, IAS Universität Stuttgart 353


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Behandlung von Interrupts

– Erzeugung und Verarbeitung von Interrupts

– Anstoß einer Interrupt-Routine bei gleichzeitiger Unterbrechung des

gerade laufenden Rechenprozesses

– Priorisierung von Interrupts

– Hardwarefunktionen für die Interrupt-Behandlung

(Mikrosekunden-Bereich)

© 2013, IAS Universität Stuttgart 354


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Speicherverwaltung

Preis von Speicherplatz proportional zur Zugriffsgeschwindigkeit

Speicherhierarchie-Ebenen

optimale Nutzung notwendig

– Cache-Speicher (besonders schneller Halbleiterspeicher)

– Arbeitsspeicher

– Plattenspeicher

– Diskette

Aufgaben der Speicherverwaltung

– Optimale Ausnutzung der “schnellen” Speicher

– Koordinierung des gemeinsamen Zugriffs auf einen Speicherbereich

– Schutz des Speicherbereichs verschiedener Rechenprozesse gegen

Fehlzugriffe

– Zuweisung von physikalischen Speicheradressen für die logischen

Namen in Anwenderprogrammen

© 2013, IAS Universität Stuttgart 355


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Ein-/Ausgabesteuerung

Verschiedenartige Typen von Ein-/Ausgabegeräten

– Unterscheidung in Geschwindigkeit

– Unterscheidung in Datenformaten

Realisierung der Ein-/Ausgabesteuerung

Schnittstelle hardwareabhängig/hardwareunabhängig

– Hardwareunabhängige Ebene für die Datenverwaltung und den

Datentransport

– Hardwareabhängige Ebene, die alle gerätespezifischen

Eigenschaften berücksichtigt (Treiber-Programme)

© 2013, IAS Universität Stuttgart 356


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Behandlung irregulärer Betriebszustände

Klassifizierung von Fehlern (1)

– fehlerhafte Benutzereingaben

nicht zulässige Eingaben müssen mit Fehlerhinweisen abgelehnt

werden

– fehlerhafte Anwenderprogramme

Gewährleistung, dass ein fehlerhaftes Anwenderprogramm keine

Auswirkungen auf andere Programme hat

© 2013, IAS Universität Stuttgart 357


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Klassifizierung von Fehlern (2)

– Hardwarefehler/-ausfälle

Erkennung von Hardwarefehlern bzw. -ausfällen

Rekonfigurierung ohne die fehlerhaften Teile

Abschaltsequenzen bei Stromausfällen

– Deadlocks aufgrund dynamischer Konstellationen

sichere Vermeidung von Deadlocks ist nicht möglich

Deadlockerkennung mit Behebung durch Entzug von

Betriebsmitteln

© 2013, IAS Universität Stuttgart 358


6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

AT1

Frage zu Kapitel 6.2

Betrachten sie zwei unterschiedliche Automatisierungssysteme:

• Steuerung eines Kaffeeautomaten

• Bahnregelung eines Roboters

Um was für einen Typ von System handelt es sich jeweils?

Für welches System ist die Interrupt-Verwaltung eines Betriebssystems

besonders wichtig?

Antwort

Kaffeeautomat: ereignisgesteuertes System Prozesse durch Interrupts

angestoßen.

Robotersteuerung: zeitgesteuertes System keine Interrupts, sondern

Bearbeitung der Ereignisse im nächsten Durchlauf.

© 2013, IAS Universität Stuttgart 359


AT1

§ 6 Echtzeit-Betriebssysteme

6.1 Begriffsbestimmung

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

6.5 Beispiele für Echtzeit-Betriebssysteme

© 2013, IAS Universität Stuttgart 360


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Zielsetzung

– Vorstellung des Aufbaus und der Arbeitsweise eines

Echtzeit-Betriebssystems in stark vereinfachter Form

– Schrittweiser Verzicht der getroffenen Vereinfachungen

Vorgehen bei der Entwicklung

1. Klärung der Aufgabenstellung, Festlegung der Anforderungen

2. Fachtechnische Lösungskonzeption

3. Software-Systementwurf

4. Implementierung

© 2013, IAS Universität Stuttgart 361


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Entwicklungsschritte mit Entwicklungsdokumenten

Software - Systementwurf

Klärung und

Festlegung

der Anforderungen

Fachtechnische

Lösungskonzeption

Grobentwurf

des

Programmsystems

Feinentwurf

des

Programmsystems

Implementierung

Lastenheft

Pflichtenheft

Blockbilder

Flussdiagramme

Programm

© 2013, IAS Universität Stuttgart 362


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Klärung und Festlegung der Anforderungen

– Verwaltung von maximal n Rechenprozessen

m Rechenprozesse zyklisch

k Rechenprozesse durch Interrupt-Signal

d.h. n = m + k

– ein Prozessor zur Ausführung von Operationen

keine Optimierung der Abläufe durch Simultanabarbeitung von

Rechen- und E/A-Operationen

– Zeitsignal für zyklische Aktivierung durch internen Taktgeber

Taktimpulse in festem Zeitabstand T (z.B. T = 20ms)

unterschiedliche Zykluszeiten für die zyklischen Rechenprozesse

© 2013, IAS Universität Stuttgart 363


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Vereinfachungen, die später stufenweise aufgehoben werden

1. Summe aller Rechenzeiten der Rechenprozesse kleiner als

Zeitabstand T

– Sicherstellung, dass beim nächsten Uhrimpuls-Takt alle

Rechenprozesse beendet sind

2. Keine Verwaltung von Rechenprozessen, die durch Interrupt angestoßen

werden

nur zyklische Rechenprozesse

3. Keine Betriebsmittelverwaltung

– E/A-Zeiten vernachlässigbar klein

© 2013, IAS Universität Stuttgart 364


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Fachtechnische Lösungskonzeption

Verfahren der asynchronen Programmierung

– asynchrone Beauftragung der einzelnen Rechenprozesse

– keine feste Reihenfolge der Tasks

– Konfliktstrategie nach Prioritätsnummern

Teillösungen

– Zykluszeit-Bildung

Ableitung der unterschiedlichen Zykluszeiten der Tasks aus dem

Uhrimpuls-Takt

– Zustandsführung der Rechenprozesse

Beauftragung der Tasks zu den jeweiligen Zykluszeiten und

definierte Beendigung

– Start der Rechenprozesse

Start der Task, die an der Reihe ist

© 2013, IAS Universität Stuttgart 365


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Lösungskonzept des Mini-Betriebssystems

Teillösung 1: Zykluszeit-Bildung

Bilden der

Zykluszeiten

T 1

, T 2

, ..., T m

Teillösung

2:

Beauftragung der

Rechenprozesse

zu den Zeiten T 1

..., T m , und

Beenden der

Beauftragung

Zustandsführung der

Rechenprozesse

Teillösung 3: Start

der Rechenprozesse

Starten der beauftragten

Rechenprozesse

nach

Prioritäten

© 2013, IAS Universität Stuttgart 366


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Zykluszeit-Bildung

Aufgabe:

1. Bildung des Zusammenhangs zwischen den Zykluszeiten T i (i = 1,2,...,m)

und der Zeitdauer T

Annahme: T i >> T

T i = a i T

a i ganzzahlige Zykluszeitfaktoren (i=1,2,...,m)

2. Zeitdauervariable Z i (i=1,2,...,m)

a) Eintreffen des Uhrimpuls-Takts verringert Z i um 1

b) Z i = 0 bedeutet: Zykluszeit T i ist abgelaufen

Zurücksetzen von Z i auf den Anfangswert a i

© 2013, IAS Universität Stuttgart 367


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Teillösung 1: Zykluszeit-Bildung

Einführung dimensionsloser, ganzzahliger Zykluszeit-Faktoren

T 1

= a 1

T a 1

=

T 2

= a 2

T a 2

=

T m

= a m

T a m

=

T 1

T

T 2

T

T m

T

Definition von (dimensionslosen) Zeitdauervariablen z 1,

z 2

, ..., z m

mit den Anfangswerten

z 1

= a 1

z 2

= a 2

z m

= a m

Uhrimpulstakt

Bei jedem Eintreffen des Uhrimpuls-Taktes im Zeitabstand T :

=> Dekrementieren der Variablen z i

(vermindern um 1), d.h. Bildung von

z 1

:= z 1

- 1

z 2

:= z 2

- 1

z m

:= z m

-1

© 2013, IAS Universität Stuttgart 368


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Teillösung 1: Zykluszeit-Bildung (2)

Sobald eine Variable z i

= 0 geworden ist, ist die betreffende Zykluszeit

T i

erreicht. Daher wird dieses Ergebnis an die Lösungskomponente 2

gemeldet, die den Rechenprozess i beauftragt (in den Zustand "bereit" bringt).

Zu/ von

Teillösung

2

Rücksetzen der betreffenden Zeitdauervariablen auf den Anfangswert

z i

:= a i

, Fortsetzen mit Lösungskomponente 2.

Zu Teillösung

2

© 2013, IAS Universität Stuttgart 369


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Teillösung 2: Zustandsführung der Rechenprozesse

Aufgabe:

– Verwaltung der Zustände der Rechenprozesse

ruhend

bereit

laufend

– Buchführung über die jeweiligen Zustände

– Durchführung von Zustandsänderungen

© 2013, IAS Universität Stuttgart 370


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Teillösung 2: Zustandsführung der Rechenprozesse

von Teillösung 1

zurück zu Teillösung 1

Bei Eintreffen einer Meldung, dass eine Zykluszeit T i

abgelaufen ist:

Beauftragung des betreffenden Rechenprozesses (in den

Zustand "bereit" setzen).

von Teillösung 1,wenn

alle Zeitdauervariablen

bearbeitet sind

In der Liste denjenigen Rechenprozess ermitteln, der im

Zustand "bereit" ist und dabei die höchste Priorität

aufweist

Liste der

momentanen

Zustände der

Rechenprozesse

Meldung an die Lösungskomponente 3 (dort wird der

betreffende Rechenprozess gestartet).

Start-Meldung

zu Teillösung 3

Nach Ausführung eines Rechenprozesses:

In der Zustands-Liste den Zustand "ruhend" eintragen.

Ende-Meldung

von Teillösung 3

© 2013, IAS Universität Stuttgart 371


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Start der Rechenprozesse

Aufgabe:

– Ermittlung der Startadresse

– Start des Rechenprozesses

– Beendigung des Rechenprozesses überwachen

© 2013, IAS Universität Stuttgart 372


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Teillösung 3: Start der Rechenprozesse

Start-Meldung

von Teillösung 2

Nach der Meldung von der Lösungskomponente 2:

Startadresse des betreffenden Rechenprozesses ermitteln.

Start des betreffenden Rechenprozesses

(Unterprogramm-Sprung an die Startadresse)

Ende-Meldung

zu Teillösung 2

Meldung an Lösungskomponente 2, dass Rechenprozess

beendet ist.

© 2013, IAS Universität Stuttgart 373


6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

AT1

Frage zu Kapitel 6.3

Welche Aufgaben müssen beim Start eines Rechenprozesses

durchgeführt werden?

Antwort

f

f



Ermittlung des derzeitigen Zustandes des Prozesses.

Überprüfung, ob der Prozess der momentan höchstpriore Prozess ist.

Ermittlung der Startadresse des Prozesses.

© 2013, IAS Universität Stuttgart 374


AT1

§ 6 Echtzeit-Betriebssysteme

6.1 Begriffsbestimmung

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

6.5 Beispiele für Echtzeit-Betriebssysteme

© 2013, IAS Universität Stuttgart 375


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Zerlegung des Mini-Echtzeit-Betriebssystemprogramms

– Teilprogramm ZEITVERWALTUNG

zur Bildung der unterschiedlichen Zykluszeiten

– Teilprogramm TASKVERWALTUNG

zur Verwaltung der Rechenprozesse

– Teilprogramm PROZESSORVERWALTUNG

Zuteilung des Betriebsmittels “Prozessor”

Start der Rechenprozesse

MINI-ECHTZEIT-

BETRIEBSSYSTEM

Ebene 1

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

Ebene 2

© 2013, IAS Universität Stuttgart 376


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Zusammenwirken der Teilprogramme

MINI-ECHTZEIT-BETRIEBSSYSTEM

UHR-

IMPULS-

TAKT

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

Start eines Rechenprozesses

Ende eines Rechenprozesses

Symbolik

Anstoß (Kontrollfluss)

Datenübergabe (Datenfluss)

Programm bzw. Programmteil

Liste von Daten bzw. einzelner Wert (Date)

© 2013, IAS Universität Stuttgart 377


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Benötigte Listen für die ZEITVERWALTUNG (1)

– Zeitdauervariable Z i zur Zykluszeit-Bildung

Liste ZEITZÄHLER

Ablage der Zeitdauervariablen z i

:

z 1

z 2

m Plätze

z 3

Liste von Variablen

z m

© 2013, IAS Universität Stuttgart 378


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Benötigte Listen für die ZEITVERWALTUNG (2)

– Zykluszeit T i für jeden Rechenprozess

Liste ZYKLUS

Bereitstellen der Zykluszeit-Faktoren a i

:

a 1

a 2

m Plätze

a 3

= T i /T

Liste von Konstanten

a m

© 2013, IAS Universität Stuttgart 379


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Blockdiagramm des Teilprogramms ZEITVERWALTUNG

UHRIMPULS-

TAKT

ZEIT

Anstoß

TASKVERWALTUNG

ZYKLUS

ZEIT-

ZÄHLER

© 2013, IAS Universität Stuttgart 380


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Benötigte Liste für TASKVERWALTUNG und

PROZESSORVERWALTUNG


Zustände und Anfangsadressen der Rechenprozesse

VERWALTUNGSBLOCK

Listenstruktur zur Verwaltung der Rechenprozesse VERWALTUNGSBLOCK

B 1

Startadresse 1

m Plätze

B 2

B 3

Startadresse 2

Startadresse 3

B 4

Startadresse 4

B m

Startadresse m

Zustandsbits

B i

B i

= 0: bereit

B i

= 1: ruhend

Anfangsadresse des dem

Rechenprozess i

zugeordneten Codes

(i = 1, 2, ..., m)

© 2013, IAS Universität Stuttgart 381


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Zerlegung des Programmteils TASKVERWALTUNG

TASK-

VERWALTUNG Ebene 2

AKTIVIERUNG

SUCHE

DEAKTIVIE-

RUNG

Ebene 3

© 2013, IAS Universität Stuttgart 382


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Blockdiagramm der TASKVERWALTUNG

von/zur

ZEITVER-

WALTUNG

AKTIVIERUNG

SUCHE

zur

PROZESSOR-

VERWALTUNG

VERWALTUNGS-

BLOCK

Auslesen der

Startadresse

durch die

PROZESSOR-

VERWALTUNG

DEAKTIVIERUNG

Ende des betreffenden

Rechenprozesses

von der

PROZESSOR-

VERWALTUNG

© 2013, IAS Universität Stuttgart 383


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Teilprogramme

AKTIVIERUNG:

DEAKTIVIERUNG:

Verändern des Zustandsbits in “bereit”

Verändern des Zustandsbits in “ruhend”

B = 0

B = 1

SUCHE:

Überprüfung, ob sich eine Task im Zustand

“bereit” befindet

Ordnung der Liste VERWALTUNGSBLOCK ermöglicht einfache Priorisierung

Untergliederung PROZESSORVERWALTUNG ist nicht notwendig

© 2013, IAS Universität Stuttgart 384


PROZESSORVERWALTUNG

Rechenprozesscode

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Übersichtsblockdiagramm des Mini-Echtzeit-Betriebssystems

UHR-

IMPULS-

TAKT

ZEIT

AKTIVIERUNG

SUCHE

VERWALTUNGS-

BLOCK

ZYKLUS

ZEIT-

ZÄHLER

DEAKTIVIE-

RUNG

ZEITVERWALTUNG

TASKVERWALTUNG

© 2013, IAS Universität Stuttgart 385


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Feinentwurf in Form von Flussdiagrammen

ZEITVERWALTUNG

UHR-

IMPULS-

TAKT

ZEIT

l = 1

ZEITZÄHLER(I) =

ZEITZÄHLER(I) -1

ZEIT-

ZÄHLER(I)

= 0?

nein

I = M?

nein

l = I + 1

ja

ja

Suchen

ZEITZÄHLER(I)

= ZYKLUS(I)

AKTIVIERUNG(I)

© 2013, IAS Universität Stuttgart 386


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Flussdiagramme der Programme TASKVERWALTUNG

AKTIVIERUNG

AKTIVIERUNG(I)

Adressteil

von VERWAL-

TUNGSBLOCK (I)

= 0?

nein

ZUSTANDSBIT(I) IN

VERWALTUNGS

BLOCK(I) = 0 setzen

ja

FEHLER-

MELDUNG

Abfrage, ob

Rechenprozess

überhaupt

vorhanden

= bereit

Rücksprung

© 2013, IAS Universität Stuttgart 387


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

SUCHE

DEAKTIVIERUNG

SUCHE

I = 1

DEAKTIVIERUNG(I)

ZUSTANDS-

BIT(I) von VERWAL-

TUNGSBLOCK(I)

= 0?

nein

I = M?

nein

I = I + 1

ja

ja

PROZESSORVER-

WALTUNG(I)

ZUSTANDSBIT(I)

in VERWALTUNGS-

BLOCK(I) = 1 setzen

SUCHE

= ruhend

© 2013, IAS Universität Stuttgart 388


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Flussdiagramm der PROZESSORVERWALTUNG

PROZESSORVER-

WALTUNG (I)

Rechenprozess

über Startadresse

in VERWALTUNGS-

BLOCK (I) starten,

d.h. als Unterprogramm

aufrufen

DEAKTIVIERUNG (I)

© 2013, IAS Universität Stuttgart 389


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Erste Erweiterung des Systementwurfs

Zulassen längerer Rechenzeiten für die Rechenprozesse



Beim Eintreffen eines Uhrimpuls-Taktes muss u.U. ein noch

laufender Rechenprozess mit längerer Ausführungsdauer und

niedrigerer Priorität unterbrochen werden, um einen Rechenprozess

höherer Priorität zu starten

Programm zur Unterbrechungsverwaltung

© 2013, IAS Universität Stuttgart 390


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Teilprogramm UNTERBRECHUNGSVERWALTUNG

Aufgabe des Verwaltungsprogramms

Rettung der Register des Prozessors eines gerade

laufenden Rechenprozesses

– Programmzähler

– Akkumulator

– Zustandsregister

– Arbeitsregister

© 2013, IAS Universität Stuttgart 391


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Erweitertes Hierarchiediagramm nach dem Zulassen

längerer Rechenzeiten der Rechenprozesse

MINI-ECHTZEIT-BETRIEBSSYSTEM

(Erweiterung 1)

UNTER-

BRECHUNGS-

VERWALTUNG

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

© 2013, IAS Universität Stuttgart 392


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Erweiterung der Liste

VERWALTUNGSBLOCK

Rechenprozess

1

Anfangsadresse 1

Startadresse (Programmzählerinhalt)

Registerinhalt 1

Registerinhalt 2

– Startadresse nach einer

B 1

Anfangsadresse 2

Registerinhalt k

Unterbrechung

– Register-

Speicherplätze

Rechenprozess

2

B 2

Startadresse (Programmzählerinhalt)

Registerinhalt 1

Registerinhalt 2

Registerinhalt k

B m

Anfangsadresse m

Startadresse (Programmzählerinhalt)

Rechenprozess

m

Registerinhalt 1

Registerinhalt 2

Registerinhalt k

© 2013, IAS Universität Stuttgart 393


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Erweiterung des Teilprogramms PROZESSORVERWALTUNG

– vor dem Start eines ablaufbereiten Rechenprozesses laden der

Register mit den Inhalten der Liste VERWALTUNGSBLOCK

Erweiterung des Teilprogramms DEAKTIVIERUNG

– nach Beendigung eines Rechenprozesses laden seiner

Anfangsadresse in die Zelle STARTADRESSE und Initialisieren

der Registerinhalte im VERWALTUNGSBLOCK

© 2013, IAS Universität Stuttgart 394


Rechenprozesscode

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Übersichtsdiagramm des Mini-Echtzeit-Betriebssystems

Erste Erweiterung: Zulassen längerer Rechenzeiten für die Rechenprozesse

ZEIT

AKTI-

VIERUNG

SUCHE

UHRIMPULS-

INTERRUPT

VERWAL-

TUNGS-

BLOCK

ZYKLUS

ZEIT-

ZÄHLER

DEAKTI-

VIERUNG

UNTER-

BRECHUNGS-

VERWALTUNG

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

© 2013, IAS Universität Stuttgart 395


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Zweite Erweiterung des Software-Systementwurfs

Vorsehen der Möglichkeit von Alarm-Interrupts

– bis zu k Rechenprozesse, deren Aktivierung von zeitlich nicht

vorhersehbaren Alarm-Interrupts ausgelöst wird

Erweiterung der UNTERBRECHUNGSVERWALTUNG

– Registerrettung

– bei Uhrimpuls-Interrupts Anstoß der ZEITVERWALTUNG

– bei Alarm-Interrupts Aufruf der AKTIVIERUNG, um dem Alarm-Interrupt

zugeordnetes Antwortprogramm in den Zustand “bereit” zu setzen

– Anstoß der SUCHE

© 2013, IAS Universität Stuttgart 396


externe Interrupts

Rechenprozesscode

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Übersichtsdiagramm für das Mini-Betriebssystem

Zweite Erweiterung:

Vorsehen der Möglichkeit von Alarm-Interrupts

UHRIMPULS-

INTERRUPT

ZEIT

AKTI-

VIERUNG

SUCHE

INTERRUPT1

VERWAL-

TUNGS-

BLOCK

INTERRUPT2

INTERRUPT K

ZYKLUS

ZEIT-

ZÄHLER

DEAKTI-

VIERUNG

UNTER-

BRECHUNGS-

VERWALTUNG

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

© 2013, IAS Universität Stuttgart 397


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Dritte Erweiterung des Software-Systementwurfs

Betriebsmittelverwaltung für Ein-/Ausgabegeräte

E/A-Operationen sind langsamer

Analog-Digital-Umsetzer ca. 20 ms

Einführung eines Teilprogramms E/A-VERWALTUNG

Aufgabe:

Organisation von langsamen Ein-/Ausgabeoperationen

– Rechenprozess wird angehalten

– Prozessor kann andere Rechenprozesse bearbeiten

– Beendigung der E/A-Operationen ermöglicht Fortsetzung des

zugehörigen Rechenprozesses

© 2013, IAS Universität Stuttgart 398


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Hierarchiediagramm des Mini-Betriebssystems

MINI-ECHTZEIT-

BETRIEBSSYSTEM

(Erweiterung 3)

E/A-

VERWALTUNG

UNTER-

BRECHUNGS-

VERWALTUNG

ZEIT-

VERWALTUNG

TASK-

VERWALTUNG

PROZESSOR-

VERWALTUNG

© 2013, IAS Universität Stuttgart 399


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Aufhebung der Vereinfachungen

– Die Betriebssystemprogramme selbst sind nicht unterbrechbar

– Die Mehrfachbeauftragung eines Rechenprozesses, d.h. erneute

Beauftragung vor der Beendigung, ist ausgeschlossen

– Eine gegenseitige Beauftragung von Rechenprozessen ist nicht möglich

– Eine Synchronisierung der Rechenprozesse, z.B. mittels

Semaphoroperationen, ist nicht möglich

– Keine Datenkommunikation zwischen den Rechenprozessen, d.h. kein

Austausch von Daten, keine gemeinsame Benutzung von Daten

– Keine dynamische Änderung der Prioritäten der Rechenprozesse

während der Programmdurchführung

– Rechenprozesse befinden sich im Arbeitsspeicher, Hintergrundspeicher

sind nicht vorhanden

© 2013, IAS Universität Stuttgart 400


6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

AT1

Frage zu Kapitel 6.4

In Echtzeit-Betriebssystemen spielen Prozessor-Zuteilungsstrategien

(Scheduling-Verfahren) eine wichtige Rolle.

a) Welche Aufgaben haben diese Strategien?

b) In welchem Programmteil des in der Vorlesung vorgestellten Mini-

Betriebssystems kommt eine Prozessorzuteilungsstrategie zum Einsatz

und um welche handelt es sich?

Antwort

a) Bestimmung der Reihenfolge, in der die ablaufbereiten Tasks zur

Ausführung gebracht werden.

b) Im Programm SUCHE: Strategie der festen Prioritäten. Tasks können

unterbrochen werden (preemptives Scheduling)

© 2013, IAS Universität Stuttgart 401


AT1

§ 6 Echtzeit-Betriebssysteme

6.1 Begriffsbestimmung

6.2 Organisationsaufgaben eines Echtzeit-Betriebssystems

6.3 Entwicklung eines Mini-Echtzeit-Betriebssystems

6.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems

6.5 Beispiele für Echtzeit-Betriebssysteme

© 2013, IAS Universität Stuttgart 402


6.5 Beispiele für Echtzeit-Betriebssysteme

AT1

Marktübersicht

Kriterien bei der Auswahl von Echtzeit-Betriebssystemen

– Entwicklungs- und Zielumgebung

– Modularität und Kernelgröße

– Leistungsdaten

Anzahl von Tasks

Prioritätsstufen

Taskwechselzeiten

Interruptlatenzzeit

– Anpassung an spezielle Zielumgebungen

– Allgemeine Eigenschaften

Schedulingverfahren

Intertaskkommunikation

Netzwerkkommunikation

Gestaltung Benutzungsoberfläche

© 2013, IAS Universität Stuttgart 403


6.5 Beispiele für Echtzeit-Betriebssysteme

AT1

Auswahl kommerzieller Echtzeit-Betriebssysteme

Produkt

RTA-

OSEK

osCAN

tresor

ECU

Lynx-OS OS/9 OSE Delta pSOS PXROS QNX VxWorks Windows

CE

Hersteller

ETAS

GmbH

Vector

Informatik

3soft

GmbH

Kategorie Embedded Embedded Embedded

Zielsystem

Hostsystem

C16x,

PowerPC,

Tricore,

M16C,

ST10,

ST30

UNIX,

Windows

C16x,

PowerPC,

Tricore,

ARM7,

M16C,

M32C,

ST10

UNIX,

Windows

Sprache MISRA-C ANSI-C,

OIL

Specification

Language

Dateisystem

C16x,

Tricore,

ARM7,

ARM9,

M32C,

ST10

UNIX,

Windows

ANSI-C,

OIL

Specification

Language

Lynx

Works Inc.

680x0,

C16x,

PowerPC,

88000,

i860,

MIPS,

SPARC,

RS6000

UNIX

ANSI-C,

C++,

Pascal,

Ada,

Modula,

Fortran

kein kein kein UNIX,

FAT, NFS,

Real-Time

Filesystem

Microware

EZBS,

EZK,

Embedded

680x0,

80x86,

PowerPC,

CPU32

UNIX,

Windows

ANSI-C,

C++

FAT

ENEA

DATA AB

EZK,

Embedded

680x0,

PowerPC,

CPU32,

AMD29k

UNIX,

Windows

ARS

Integrated

Systems

EZBS,

EZK,

Embedded

680x0,

80x86,

C16x,

PowerPC,

CPU32,

i960,

Hitachi

SH, MIPS

UNIX,

SUN,

Windows,

OS/2

C, C++ ASM,

ANSI-C,

C++,

Pascal,

Ada

UNIX,

FAT

UNIX,

FAT, NFS,

Real-Time

Filesystem

HighTec

EDV-

Systeme

EZK,

Embedded

80x86,

C16x,

PowerPC

UNIX,

SUN,

Windows,

OS/2

ANSI-C,

C++

QNX

Software

Systems

LTD

EZBS,

EZK,

Embedded

i386,i486,

Pentium,

80286(16

bit)

WindRiver Microsoft

EZBS,

EZK,

Embedded

680x0,

80x86,

PowerPC,

CPU32,

i960,

MIPS,

SPARC,

AMD29k,

Hitachi SH

EZBS

Embedded

Pentium

80x86,

i486

PowerPC

MIPS

Hitachi S4,

ARM

© 2013, IAS Universität Stuttgart 404

UNIX,

FAT

QNX

Watcom

C, C++,

Inline

ASM

UNIX,

FAT,

ISO9660

UNIX,

Windows

ANSI-C,

C++, Java,

Ada

UNIX,

FAT

Windows

CE

Windows

Visual

C++

Visual

Basic

Visual J++

FAT


6.5 Beispiele für Echtzeit-Betriebssysteme

AT1

Auswahl kommerzieller Echtzeit-Betriebssysteme

Produkt

RTA-

OSEK

osCAN

tresor

ECU

Lynx-OS OS/9 OSE Delta pSOS PXROS QNX VxWorks Windows

CE

Netzwerk

TCP/IP,

NFS

TCP/IP,

OS/9-net,

NeWLink

TCP/IP,

PPP,

SNMP

TCP/IP,

Netware,

OSI 1-7,

SNMP

CMIP,

X.25

TCP/IP,

NFS

TCP/IP,

NFS,

SNMP,

Streams

TCP/IP,

NFS,

SNMP,

Streams

TCP/IP,

PPP bzw.

SLIP

Feldbus

CAN,

LIN,

FlexRay

CAN,

LIN,

FlexRay

CAN

CAN,

PROFI-

BUS,

Interbus-S

CAN

CAN,

PROFI-

BUS

Sonstiges

ROMfähig

ROMfähig

ROMfähig

ROMfähig,

Multiprozessor,

self-hosted

ROMfähig,

Multiprozessor

ROMfähig,

Multiprozessor

ROMfähig,

Multiprozessor,

fehlertolerant

ROMfähig,

Multiprozessor

ROMfähig,

Multiprozessor,

POSIX

1003

kompatibel

ROMfähig,

Multiprozessor,

POSIX

1003

kompatibel

ROMfähig

Scheduling

preemptiv,

kooperativ

, prioritätsgesteuert

preemptiv,

kooperativ

gemischt

preemptiv,

kooperativ

gemischt

preemptiv,

prioritätsgesteuert,

Round-

Robin

preemptiv,

kooperativ

, prioritätsgesteuert,

Round-

Robin

preemptiv, preemptiv,

prioritätsgesteuert,

Round-

Robin

preemptiv,

prioritätsgesteuert

preemptiv,

prioritätsgesteuert,

Round-

Robin

preemptiv,

prioritätsgesteuert,

Round-

Robin

preemptiv,

prioritätsgesteuert

Taskwechselzeit

< 54 s

8016x (20

MHz)

4,7 s

Pentium

166,

11,1us

486DX4

(100MHz),

74,2us 386

(33MHz)

100 s

© 2013, IAS Universität Stuttgart 405


6.5 Beispiele für Echtzeit-Betriebssysteme

AT1

Frage zu Kapitel 6.5

Welche Kriterien sind bei der Auswahl eines Echtzeitbetriebssystems

relevant, das für die Mikrocontroller-Steuerung einer Waschmaschine

verwendet werden soll?

Antwort



f

f


Zielsystem

Dateisystem

Netzwerkunterstützung

ROM-Fähigkeit

© 2013, IAS Universität Stuttgart 406


Kapitel 6: Vorbereitungsfrage

AT1

Vorbereitungsfrage zu Kapitel 6

Frage 1: Mini-Betriebssystem (SS 2006)

– Warum kommt das in der Vorlesung vorgestellte Mini-Betriebssystem in

seiner ersten Erweiterung mit weniger als 4 Zuständen aus?

– Welche Zustände des Zustandsmodells von Rechenprozessen werden

nicht benötigt? Warum?

© 2013, IAS Universität Stuttgart 407

Weitere Magazine dieses Users
Ähnliche Magazine