5 Echtzeit-Betriebssysteme



Ähnliche Dokumente
Automatisierungstechnik I Mini-Betriebssystem Theorie

5 Echtzeit-Betriebssysteme

5.1 Begriffsbestimmung

6 Echtzeit-Betriebssysteme

3.14 Die Programmieroberfläche Programmierung

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Step by Step Webserver unter Windows Server von Christian Bartl

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Grundlagen verteilter Systeme

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Monitoring-Service Anleitung

Formular»Fragenkatalog BIM-Server«

How to do? Projekte - Zeiterfassung

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

3 Windows als Storage-Zentrale

Computeria Urdorf. Treff vom 28. März Tipps und Tricks

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Was ist neu in Sage CRM 6.1

AMS Alarm Management System

Internet online Update (Internet Explorer)

Verwendung des IDS Backup Systems unter Windows 2000

Installationshinweise BEFU 2014

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Windows Server 2008 (R2): Anwendungsplattform

Mikrocontroller Grundlagen. Markus Koch April 2011

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Domänenmodell: Fadenkommunikation und -synchronisation

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

12. Dokumente Speichern und Drucken

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Updatehinweise für die Version forma 5.5.5

Anleitung zur Nutzung des SharePort Utility

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Benutzerverwaltung Business- & Company-Paket

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Dämon-Prozesse ( deamon )

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

Systeme 1. Kapitel 10. Virtualisierung

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Leitfaden Meine Daten ändern

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

MetaQuotes Empfehlungen zum Gebrauch von

Microsoft SharePoint 2013 Designer

Übungen zur Softwaretechnik

Zeichen bei Zahlen entschlüsseln

Lehrer: Einschreibemethoden

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

macs Support Ticket System

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Buddy - Algorithmus Handbuch für Endnutzer Stand

Workshop: Eigenes Image ohne VMware-Programme erstellen

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Version 0.3. Installation von MinGW und Eclipse CDT

4D Server v12 64-bit Version BETA VERSION

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Neuerungen PRIMUS 2014

TX Praxis auf Windows Vista

Übungen zum Fach Betriebssysteme Kapitel 3

Hilfe zur Urlaubsplanung und Zeiterfassung

Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

Gruppenrichtlinien und Softwareverteilung

Internet Explorer Version 6

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Übung -- d002_ampelsteuerung

Einrichtung eines VPN-Zugangs

LPT1 Anschluss mit PCMCIA Karte

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Starten der Software unter Windows 7

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Einrichtungsanleitungen Hosted Exchange 2013

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

HTBVIEWER INBETRIEBNAHME

Installation OMNIKEY 3121 USB

Proseminar Technische Informatik A survey of virtualization technologies

ASP Dokumentation Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

DCCP (Data Collection Cash Processing) Schaubild Version 1.0

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Installation von Office 365 auf einem privaten PC

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

1 Anschließen der Wiegeanzeige an den PC

Der einfache Weg zum CFX-Demokonto

Datenaustausch mit Datenbanken

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Installation und Inbetriebnahme von SolidWorks

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

Transkript:

5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 331 Kapitel 5: Echtzeit-Betriebssysteme Kapitel 5 - 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-Betriebssystems funktioniert Die Erweiterungen des Mini-Betriebssystems verstanden haben Die Abläufe im Mini-Betriebssystem nachvollziehen können Eine Übersicht über Echtzeit-Betriebssysteme erhalten 2003, IAS Universität Stuttgart 332

5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.1.1 Was ist ein Betriebssystem? 5.1.2 Betriebsmittel 5.1.3 Anforderungen an ein Echtzeit-Betriebssystem 5.1.4 Kategorien von Echtzeit-Betriebssystemen 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 333 5.1.1 Was ist ein Betriebssystem? 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 2003, IAS Universität Stuttgart 334

5.1.1 Was ist ein Betriebssystem? 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 Kilo-Bytes bei Mikrorechnern mehrere Mega-Bytes bei Großrechnern Integration klassischer Betriebssystembestandteile in Form von Halbleiterchips 2003, IAS Universität Stuttgart 335 5.1.2 Betriebsmittel Betriebsmittel Objekte, die die Rechenprozesse während des Ablaufs benötigen und auf deren Zuteilung warten müssen Geräteeinheiten Prozessoren Speicher Peripheriegeräte wie Drucker Systemprogramme 2003, IAS Universität Stuttgart 336

5.1.3 Anforderungen an ein Echtzeit-Betriebssystem Zeitbedingungen bei der Abwicklung von Rechenprozessen Abschluss bzw. Anstoß von Rechenprozessen zu einem exakten Zeitpunkt zu einem bestimmten Zeitpunkt, aber mit zulässigen Zeittoleranzen zu einem spätesten Zeitpunkt zu einem frühesten Zeitpunkt 2003, IAS Universität Stuttgart 337 5.1.3 Anforderungen an ein Echtzeit-Betriebssystem Beispiele von Zeitbedingungen Anforderung Zeitdiagramm Beispiel feste Zeitpunkte Kennfeldaufnahme an Prüfständen t 1 t 2 t Zeitpunkte mit Toleranzen t 1 t 2 t Erfassung von Regelgrößen bei der direkten digitalen Regelung spätester Zeitpunkt t 1 t Erfassung von Datentelegrammen bei Linienleiter-Systemen frühester Zeitpunkt t 1 t Folgesteuerung bei Chargen-Prozessen 2003, IAS Universität Stuttgart 338

5.1.4 Kategorien von Echtzeit-Betriebssystemen Kategorien von Echtzeit-Betriebssystemen (1) Echtzeit-UNIX Kompatibel zu UNIX-System V 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 2003, IAS Universität Stuttgart 339 5.1.4 Kategorien von Echtzeit-Betriebssystemen Kategorien von Echtzeit-Betriebssystemen (2) Echtzeit-Betriebssystemerweiterungen Erweiterung von MS-DOS-Systemen Bibliothek zur Einhaltung der Echtzeitbedingungen Echtzeit-Betriebssysteme sehr effizient flexibel konfigurierbar an UNIX orientiert 2003, IAS Universität Stuttgart 340

5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.2.1 Aufbau und Eigenschaften eines Echtzeit-Betriebssystems 5.2.2 Rechenprozess-Verwaltung 5.2.3 Interrupt-Verwaltung 5.2.4 Speicherverwaltung 5.2.5 Ein-/Ausgabesteuerung 5.2.6 Fehlerbehandlung und (Wieder-) Anlauf 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 341 5.2.1 Aufbau und Eigenschaften Aufgaben eines Echtzeit-Betriebssystemen 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 2003, IAS Universität Stuttgart 342

5.2.1 Aufbau und Eigenschaften Schichtenarchitektur eines AT-Computersystems Automatisierungs-Computer Rechenprozesse und Betriebsmittel Echtzeit-Betriebssystem Betriebssystemkern (Mikrokernel) konfigurierbarer Zusatz Computer-Hardware 2003, IAS Universität Stuttgart 343 5.2.1 Aufbau und Eigenschaften Automatisierungs-Computersystem 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. 2003, IAS Universität Stuttgart 344

5.2.2 Rechenprozess-Verwaltung 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 2003, IAS Universität Stuttgart 345 5.2.3 Interrupt-Verwaltung Interrupt-Verwaltung Unterbrechung des geplanten Programmablaufs Beauftragung einer Behandlungsroutine Geplanter Programmablauf: (ohne Interrput) Steuerungsprogramm t Tatsächlicher Ablauf: (mit Interrupt) Steigende Prio Interrupt 1 Steuerungsprogramm ISR 1 Interrupt Service Routine Steuerungsprogramm t 2003, IAS Universität Stuttgart 346

5.2.3 Interrupt-Verwaltung Behandlung von Interrupts Erzeugung und Verarbeitung vektorisierter Interrupts Interruptvektor Anstoß einer Interrupt-Routine bei gleichzeitiger Unterbrechung des gerade laufenden Rechenprozesses Priorisierung von Interrupts Hardwarefunktionen für die Interrupt-Behandlung (Mikrosekunden-Bereich) 2003, IAS Universität Stuttgart 347 5.2.4 Speicherverwaltung Warum Speicherverwaltung? Preis von Speicherplatz proportional zur Zugriffsgeschwindigkeit Speicherhierarchie-Ebene 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 2003, IAS Universität Stuttgart 348

5.2.4 Speicherverwaltung Zuordnung Name - physikalischer Adresse Compiler Linker Name Adresse relativ zum Programmanfang Adresse relativ zum gebundenen Programm virtuelle Adresse Loader physikalische Adresse 2003, IAS Universität Stuttgart 349 5.2.4 Speicherverwaltung Abbildung virtueller auf physikalische Adressen im Speicher Arbeitsspeicher physikalische Adresse 0 0 1 12 2 virtuelle Adresse Programm 1 511 512 513 511 0 1 2 3 4 Programm 2 4096 4097 4098 0 1 2 Programm 3 2003, IAS Universität Stuttgart 350

5.2.5 Ein-/Ausgabesteuerung 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) 2003, IAS Universität Stuttgart 351 5.2.6 Fehlerbehandlung und (Wider-) Anlauf 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 2003, IAS Universität Stuttgart 352

5.2.6 Fehlerbehandlung und (Wider-) Anlauf 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 Deadlockbehebung durch Entzug von Betriebsmitteln 2003, IAS Universität Stuttgart 353 5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.3.1 Zielsetzung und Vorgehen 5.3.2 Klärung und Festlegung der Aufgabenstellung und der Anforderungen 5.3.3 Lösungskonzeption 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 354

5.3.1 Zielsetzung und Vorgehen Zielsetzung Vorstellung des Aufbaus und der Arbeitsweise eines Echtzeit-Betriebssystems in stark vereinfachter Form Schrittweiser Verzicht der getroffenen Vereinfachungen Vorgehen bei der Entwicklung Klärung der Aufgabenstellung, Festlegung der Anforderungen Fachtechnische Lösungskonzeption Software-Systementwurf Implementierung 2003, IAS Universität Stuttgart 355 5.3.1 Zielsetzung und Vorgehen Vorgehen bei der Entwicklung Software - Systementwurf Klärung und Festlegung der Anforderungen Fachtechnische Lösung konzipieren Grobentwurf des Programmsystems Feinentwurf des Programmsystems Implementierung Lastenheft Pflichtenheft Blockbilder Flussdiagramme Programme in einer Programmiersprache 2003, IAS Universität Stuttgart 356

5.3.2 Aufgabenstellung und Anforderungen Aufgabenstellung und 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 2003, IAS Universität Stuttgart 357 5.3.2 Aufgabenstellung und Anforderungen Vereinfachungen, die später stufenweise aufgehoben werden Summe aller Rechenzeiten der Rechenprozesse kleiner als Zeitabstand T Sicherstellung, dass beim nächsten Uhrimpuls-Takt alle Rechenprozesse beendet sind Keine Verwaltung von Tasks, die durch Interrupt angestoßen werden Keine Betriebsmittelverwaltung E/A-Zeiten vernachlässigbar klein nur zyklische Tasks 2003, IAS Universität Stuttgart 358

5.3.3 Lösungskonzeption Lösungskonzeption Verfahren der asynchronen Programmierung asynchrone Beauftragung der einzelnen Rechenprozesse keine feste Reihenfolge der Tasks Konfliktstrategie nach Prioritätsnummern Teillösungen Zykluszeitbildung 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 2003, IAS Universität Stuttgart 359 5.3.3 Lösungskonzeption Lösungskonzept des Mini-Betriebssystems Teillösung 1: Zykluszeit Bildung Bilden der Zykluszeiten T 1, T 2,..., T m Idee 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 2003, IAS Universität Stuttgart 360

5.3.3 Lösungskonzeption Zykluszeit-Bildung Aufgabe: 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) Zeitdauervariable Z i (i=1,2,...,m) Eintreffen des Uhrimpuls-Takts verringert Z i um 1 Z i = 0: Zykluszeit T i ist abgelaufen Zurücksetzen von Z i auf den Anfangswert a i 2003, IAS Universität Stuttgart 361 5.3.3 Lösungskonzeption 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 dem Anfangswerten z 1 = a 1 z 2 = a 2 z m = a m Uhrimpulstakt Bei jedem Eintreffen des Uhrimpuls-Taktes im Zeitstand 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 2003, IAS Universität Stuttgart 362

5.3.3 Lösungskonzeption 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 2003, IAS Universität Stuttgart 363 5.3.3 Lösungskonzeption Zustandsführung der Rechenprozesse Aufgabe: Verwaltung der Zustände der Rechenprozesse ruhend bereit blockiert laufend Buchführung über die jeweiligen Zustände Durchführung von Zustandsänderungen 2003, IAS Universität Stuttgart 364

5.3.3 Lösungskonzeption 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 den jenigen Rechenprozess ermitteln, der im Zustand "bereit" ist und der 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 2003, IAS Universität Stuttgart 365 5.3.3 Lösungskonzeption Start der Rechenprozesse Aufgabe: Ermittlung der Startadresse Start des Rechenprozesses Beendigung des Rechenprozesses überwachen 2003, IAS Universität Stuttgart 366

5.3.3 Lösungskonzeption 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. 2003, IAS Universität Stuttgart 367 5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.4.1 Software-Systementwurf (stark vereinfachtes Modell) 5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten 5.4.3 Zweite Erweiterung: Interrupts 5.4.4 Dritte Erweiterung: Betriebsmittelverwaltung 5.4.5 Übergang zum realen Echtzeit-Betriebssystem 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 368

5.4.1 Software-Systementwurf Software-Systementwurf unter Zugrundelegung der stark vereinfachten Aufgabenstellung Prinzip der schrittweisen Verfeinerung Zerlegung des Mini-Betriebssystemprogramms in Programmteile, die dann wiederum verfeinert werden 2003, IAS Universität Stuttgart 369 5.4.1 Software-Systementwurf Zerlegung des Mini-Echtzeit-Betriebssystemprogramms Teilprogramm ZEIT zur Bildung der unterschiedlichen Zykluszeiten Teilprogramm TASK zur Verwaltung der Rechenprozesse Teilprogramm PROZESSOR Zuteilung des Betriebsmittels Prozessor Start der Rechenprozesse MINI-ECHTZEIT- BETRIEBSSYSTEM Ebene 1 ZEIT- TASK- PROZESSOR- Ebene 2 2003, IAS Universität Stuttgart 370

5.4.1 Software-Systementwurf Zusammenwirken der Teilprogramme MINI-ECHTZEIT-BETRIEBSSYSTEM UHR- IMPULS- TAKT ZEIT- TASK- PROZESSOR- Start eines Rechenprozesses Ende eines Rechenprozesses Symbolik Anstoß (Kontrollfluss) Datenübergabe (Datenfluss) Programm bzw. Programmteil Liste von Daten bzw. einzelner Wert (Date) 2003, IAS Universität Stuttgart 371 5.4.1 Software-Systementwurf Benötigte Listen für die ZEIT (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 2003, IAS Universität Stuttgart 372

5.4.1 Software-Systementwurf Benötigte Listen für die ZEIT (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 2003, IAS Universität Stuttgart 373 5.4.1 Software-Systementwurf Blockdiagramm des Teilprogramms ZEIT UHRIMPULS- TAKT ZEIT Anstoß TASK ZYKLUS ZEIT- ZÄHLER 2003, IAS Universität Stuttgart 374

5.4.1 Software-Systementwurf Liste für TASK und PROZESSOR Zustände und Anfangsadressen der Rechenprozesse SBLOCK Listenstruktur zur Verwaltung der Rechenprozesse SBLOCK B 1 Startadresse 1 B 2 Startadresse 2 m Plätze B 3 B 4 Startadresse 3 Startadresse 4 2dimensionales Feld 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) 2003, IAS Universität Stuttgart 375 5.4.1 Software-Systementwurf Zerlegung des Programmteils TASK TASK- Ebene 2 AKTIVIERUNG SUCHE DEAKTIVIE- RUNG Ebene 3 2003, IAS Universität Stuttgart 376

5.4.1 Software-Systementwurf Blockdiagramm der TASK von/zur ZEITVER- WALTUNG AKTIVIERUNG SUCHE zur PROZESSOR- S- BLOCK Auslesen der Startadresse durch die PROZESSOR- DEAKTIVIERUNG Ende des betreffenden Rechenprozesses von der PROZESSOR- 2003, IAS Universität Stuttgart 377 5.4.1 Software-Systementwurf AKTIVIERUNG: DEAKTIVIERUNG: SUCHE: Verändern des Zustandsbits in bereit Verändern des Zustandsbits in ruhend Überprüfung, ob sich eine Task im Zustand bereit befindet Ordnung der Liste SBLOCK ermöglicht einfache Priorisierung Untergliederung PROZESSOR ist nicht notwendig 2003, IAS Universität Stuttgart 378

5.4.1 Software-Systementwurf Übersichtsblockdiagramm des Mini-Echtzeit-Betriebssystems UHR- IMPULS- TAKT ZYKLUS ZEIT ZEIT- ZÄHLER AKTIVIERUNG S- BLOCK DEAKTIVIE- RUNG SUCHE PROZESSOR Rechenprozesscode ZEIT TASK 2003, IAS Universität Stuttgart 379 5.4.1 Software-Systementwurf Feinentwicklung in Form von Flussdiagrammen ZEIT 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 2003, IAS Universität Stuttgart 380

5.4.1 Software-Systementwurf Flussdiagramm der PROZESSOR PROZESSORVER- WALTUNG (I) Rechenprozess über Startadresse in S- BLOCK (I) starten, d.h. als Unterprogramm aufrufen DEAKTIVIERUNG (I) 2003, IAS Universität Stuttgart 381 5.4.1 Software-Systementwurf Flussdiagramme der Programme TASK AKTIVIERUNG AKTIVIERUNG(I) Adressteil von VERWAL- TUNGSBLOCK (I) = 0? nein ZUSTANDSBIT(I) IN S BLOCK(I) = 0 setzen ja FEHLER- MELDUNG Abfrage, ob Rechenprozess überhaupt vorhanden = bereit Rücksprung 2003, IAS Universität Stuttgart 382

5.4.1 Software-Systementwurf 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 S- BLOCK(I) = 1 setzen SUCHE = ruhend 2003, IAS Universität Stuttgart 383 5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten 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 2003, IAS Universität Stuttgart 384

5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten Teilprogramm UNTERBRECHUNGS Aufgabe des Verwaltungsprogramms Rettung der Register des Prozessors eines gerade laufenden Rechenprozesses Programmzähler Akkumulator Zustandsregister Arbeitsregister 2003, IAS Universität Stuttgart 385 5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten Erweitertes Hierarchiediagramm nach dem Zulassen längerer Rechenzeiten der Rechenprozesse MINI-ECHTZEIT-BETRIEBSSYSTEM (Erweiterung 1) UNTER- BRECHUNGS- ZEIT- TASK- PROZESSOR- 2003, IAS Universität Stuttgart 386

5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten Erweiterung der Liste SBLOCK Rechenprozess 1 B 1 Anfangsadresse 1 Startadresse (Programmzählerinhalt) Registerinhalt 1 Registerinhalt 2 Startadresse nach einer Unterbrechung Register- Speicherplätze Rechenprozess 2 B 2 Registerinhalt k Anfangsadresse 2 Startadresse (Programmzählerinhalt) Registerinhalt 1 Registerinhalt 2 Registerinhalt k Rechenprozess m B m Anfangsadresse m Startadresse (Programmzählerinhalt) Registerinhalt 1 Registerinhalt 2 Registerinhalt k 2003, IAS Universität Stuttgart 387 5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten Erweiterung des Teilprogramms PROZESSOR vor dem Start eines ablaufbereiten Rechenprozesses laden der Register mit den Inhalten der Liste SBLOCK Erweiterung des Teilprogramms DEAKTIVIERUNG nach Beendigung eines Rechenprozesses laden seiner Anfangsadresse in die Zelle STARTADRESSE und Initialisieren der Registerinhalte im SBLOCK 2003, IAS Universität Stuttgart 388

5.4.2 Erste Erweiterung: Zulassen längerer Rechenzeiten Übersichtsdiagramm des Mini-Echtzeit-Betriebssystems Erste Erweiterung: Zulassen längerer Rechenzeiten für die Rechenprozesse ZEIT AKTI- VIERUNG SUCHE UHRIMPULS- INTERRUPT VERWAL- TUNGS- BLOCK Rechenprozesscode ZYKLUS ZEIT- ZÄHLER DEAKTI- VIERUNG UNTER- BRECHUNGS- ZEIT- TASK- PROZESSOR- 2003, IAS Universität Stuttgart 389 5.4.3 Zweite Erweiterung: Interrupts 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 UNTERBRECHUNGS Registerrettung bei Uhrimpuls-Interrupts Anstoß der ZEIT bei Alarm-Interrupts Aufruf der AKTIVIERUNG, um dem Alarm-Interrupt zugeordnetes Antwortprogramm in den Zustand bereit zu setzen Anstoß der SUCHE 2003, IAS Universität Stuttgart 390

5.4.3 Zweite Erweiterung: Interrupts Übersichtsdiagramm für das Mini-Betriebssystem Zweite Erweiterung: Vorsehen der Möglichkeit von Alarm-Interrupts UHRIMPULS- INTERRUPT ZEIT AKTI- VIERUNG SUCHE externe Interrupts INTERRUPT1 INTERRUPT2 INTERRUPT K ZYKLUS ZEIT- ZÄHLER VERWAL- TUNGS- BLOCK DEAKTI- VIERUNG Rechenprozesscode UNTER- BRECHUNGS- ZEIT- TASK- PROZESSOR- 2003, IAS Universität Stuttgart 391 5.4.4 Dritte Erweiterung: Betriebsmittelverwaltung 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 Verwaltungsprogramms E/A- 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 2003, IAS Universität Stuttgart 392

5.4.4 Dritte Erweiterung: Betriebsmittelverwaltung Hierarchiediagramm des Mini-Betriebssystems MINI-ECHTZEIT- BETRIEBSSYSTEM (Erweiterung 3) E/A- UNTER- BRECHUNGS- ZEIT- TASK- PROZESSOR- 2003, IAS Universität Stuttgart 393 5.4.5 Übergang zum realen Echtzeit-Betriebssystem 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 2003, IAS Universität Stuttgart 394

5 Echtzeit-Betriebssysteme 5.1 Begriffsbestimmung 5.2 Organisationsaufgaben eines Echtzeit-Betriebssystems 5.3 Entwicklung eines Mini-Echtzeit-Betriebssystems 5.4 Software-Systementwurf des Mini-Echtzeit-Betriebssystems 5.5 Beispiel für Echtzeit-Betriebssysteme 2003, IAS Universität Stuttgart 395 5.5 Beispiel für Echtzeit-Betriebssysteme 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 2003, IAS Universität Stuttgart 396

5.5 Beispiel für Echtzeit-Betriebssysteme Auswahl kommerzieller Echtzeit-Betriebssysteme Produkt ERCOS Lynx-OS OS/9 OSE Delta psos PXROS QNX VRTX32 VxWorks Windows CE Hersteller ETAS GmbH Lynx Microware Real-Time System inc. Kategorie Embedded EZBS, EZK, Embedded Sprache Zielsystem Hostsystem Dateisystem 8016x, PowerPC UNIX, Win95, NT ANSI-C, OLT Specificati on Language kein 680x0, 80x86, PowerPC, 88000, i860, MIPS, SPARC, RS6000 UNIX ANSI-C, C++, Pascal, Ada, Modula, Fortran UNIX, FAT, NFS, Real-Time Filesystem 680x0, 80x86, PowerPC, CPU32 UNIX, Windows ANSI-C, C++ FAT ENEA DATA AB EZK, Embedded 680x0, PowerPC, CPU32, AMD29k UNIX, Windows, NT ARS Integrated Systems EZBS, EZK, Embedded 680x0, 80x86, 8016x, PowerPC, CPU32, i960, Hitachi SH, MIPS UNIX, SUN, Windows, NT, OS/2 C, C++ ASM, ANSI-C, C++, Pascal, Ada UNIX, FAT UNIX, FAT, NFS, Real-Time Filesystem HighTec EDV- Systeme EZK, Embedded 80x86, 8016x, PowerPC UNIX, SUN, Windows, NT, OS/2 ANSI-C, C++ UNIX, FAT QNX Software Systems LTD EZBS, EZK, Embedded i386,i486, Pentium, 80286(16 bit) QNX Watcom C, C++, Inline ASM UNIX, FAT, ISO9660 Microtec Research EZBS, EZK, Embedded 680x0, 80x86, SPARC, CPU32, AMD29k, i960 UNIX, SUN, Windows ASM, ANSI-C, C++ UNIX, FAT WindRiver EZBS, EZK, Embedded 680x0, 80x86, PowerPC, CPU32, i960, MIPS, SPARC, AMD29k, Hitachi SH UNIX, Win95, NT ANSI-C, C++, Java, Ada UNIX, FAT Microsoft EZBS Embedded Pentium 80x86, i486 PowerPC MIPS Hitachi S4, ARM Windows CE Win 95 NT Visual C++ Visual Basic Visual J++ FAT 2003, IAS Universität Stuttgart 397 5.5 Beispiel für Echtzeit-Betriebssysteme Produkt ERCOS Lynx-OS OS/9 OSE Delta psos PXROS QNX VRTX32 VxWorks Windows CE Netzwerk TCP/IP, NFS TCP/IP, OS/9-net, NeWLink Feldbus CAN CAN, PROFI- BUS, Interbus-S Sonstiges ROMfähig Scheduling preemptiv, prioritätsgesteuert Taskwechselzeit preemptiv, kooperativ, prioritätsgesteuert < 54 µs 8016x (20 MHz) ROMfähig ROMfähig, Multiprozessor, self-hosted preemptiv, prioritätsgesteuert, Round- Robin preemptiv, kooperativ, prioritätsgesteuert, Round- Robin TCP/IP, PPP, SNMP TCP/IP, Netware, OSI 1-7, SNMP CMIP, X.25 CAN ROMfähig, Multiprozessor ROMfähig, Multiprozessor ROMfähig, Multiprozessor, fehlertoler ant preemptiv, preemptiv, prioritätsgesteuert, Round- Robin TCP/IP, NFS CAN, PROFI- BUS preemptiv, prioritätsgesteuert TCP/IP, NFS, SNMP, Streams ROMfähig, Multiprozessor ROMfähig, Multiprozessor, POSIX 1003 kompatibel preemptiv, prioritätsgesteuert, Round- Robin 4,7µs Pentium 166, 11,1us 486DX4 (100MHz), 74,2us 386 (33MHz) TCP/IP, Netware CAN, PROFI- BUS, LON TCP/IP, NFS, SNMP, Streams TCP/IP, PPP bzw. SLIP 2003, IAS Universität Stuttgart 398 preemptiv, prioritätsgesteuert, Round- Robin ROMfähig ROMfähig, Multiprozessor, POSIX 1003 kompatibel preemptiv, prioritätsgesteuert, Round- Robin 17 µs 100 µs

Kapitel 5: Echtzeit-Betriebssysteme Frage zu Kapitel 5.2 Betrachten sie zwei unterschiedliche Automatisierungssysteme: ein ereignisgesteuertes System (z.b. Steuerung eines Kaffeeautomaten) ein zeitgesteuertes System (z.b. Bahnregelung eines Roboters) Für welchen Typ von System ist die Interrupt-Verwaltung eines Betriebssystems besonders wichtig? Antwort Bei ereignisgesteuerten Systemen werden die meisten Prozesse durch Interrupts angestoßen. Bei zeitgesteuerten Systemen werden dagegen keine Interrupts ausgelöst, sondern die Ereignisse im Rahmen des nächsten Durchlaufs bearbeitet. 2003, IAS Universität Stuttgart 399 Kapitel 5: Echtzeit-Betriebssysteme Frage zu Kapitel 5.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) Diese Strategien dienen zur Bestimmung der Reihenfolge, in der die ablaufbereiten Tasks zur Ausführung gebracht werden. b) Im Programm SUCHE; es wird die Strategie der festen Prioritäten verwendet. Dabei können die Tasks unterbrochen werden (preemptives Scheduling) 2003, IAS Universität Stuttgart 400