© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen. Wissen. Was praktisch zählt. Stand: 04.06.13...

Post on 05-Apr-2015

105 views 1 download

Transcript of © Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen. Wissen. Was praktisch zählt. Stand: 04.06.13...

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.1

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20 Eingebettete Software

20.0 Einführung Lernziele Echtzeitsysteme Eingebettete Systeme

20.1 Entwurf eingebetteter Systeme Modellierung von Echtzeitsystemen Programmierung von Echtzeitsystemen

20.2 Architekturmuster Beobachten und Reagieren Umgebungssteuerung Pipelineverarbeitung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.2

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20 Eingebettete Software

20.3 Analyse des Zeitverhaltens Antwortzeiten Ausführungszeiten

20.4 Echtzeitbetriebssysteme Prozessverwaltung Prioritäten Scheduling

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.3

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.0 Lernziele

das Konzept eingebetteter Software für Systeme, die auf externe Ereignisse reagieren, verstehen

einen Entwurfsprozess für Echtzeitsysteme, bei dem die Software als eine Menge kooperierender Prozesse organisiert ist, kennen lernen,

drei Architekturmuster für eingebettete Echtzeitsysteme kennen,

die Organisation von Echtzeitbetriebssystemen und ihre Rolle in eingebetteten Echtzeitsystemen verstehen

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.4

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.0 Eingebettete Systeme

Systeme aus Hardware und Software, die in einen technischen Kontext eingebettet sind Überwachung, Steuerung, Regelung Signalverarbeitung

in technischen Geräten integrierte Computeranwendungen Kameras, Waschmaschinen, Kaffeemaschinen, medizinische

Geräte, Router, DVD-Player, ABS etc. oft keine eigene oder unkonventionelle Benutzerschnittstelle Reaktion auf externe Ereignisse

am meisten verbreitete Computeranwendung oft spezielle (einfache) Hardware

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.5

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.0 Zeitanforderungen

Reaktion eingebetteter Systeme in der Regel innerhalb vorgegebener Zeitschranke erforderlich Unterschied zu Informationssystemen, Webanwendungen

etc.

Korrektheit zeitabhängig bestimmte Ausgabe zu bestimmter Eingabe nicht

ausreichend muss auch innerhalb bestimmter Zeit erfolgen Echtzeitsystem

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.6

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.0 Echtzeitsystem

Definition Echtzeitbetrieb ist der Betrieb eines Rechnersystems, bei

dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind [DIN 44300].

Harte Echtzeitanforderungen Fehler, wenn Zeitschranke nicht eingehalten wird im Fehlerfall oft schwerwiegende Folgen

Weiche Echtzeitanforderungen Überschreiten der Zeitschranke kann vorkommen bei Überschreiten eingeschränkte Leistung des Systems

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.7

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.0 Charakteristika eingebetteter Systeme

Dauerbetrieb von Einschalten der Hardware bis Ausschalten der Hardware

Interaktionen mit der Umgebung unvorhersagbar und nicht beschränkbar unerwartete Ereignisse zu verarbeiten

Physikalische Beschränkungen Platz und Gewicht, Stromversorgung, Immissionen

Direkte Ansteuerung externer Hardware keine Treiberschicht

Sicherheit und Zuverlässigkeit im Vordergrund bei Fehlern oft gravierende Schäden

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.8

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Entwurf eingebetteter Systeme

Systems Engineering statt Software Engineering Berücksichtigung der Hardware

Konstruktion und Leistung

Geeignete Aufteilung der Systemfähigkeiten Software oder Hardware

Systemnahe Entscheidungen schon zu Beginn Hardware, Hilfssoftware, Zeitsteuerung kein Top-down-Entwurf möglich

Zusätzliche Funktionalität oft nötig Energiemanagement

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.9

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Reaktive Systeme

Eingebettete System reagieren auf externe Ereignisse Reiz-Reaktion-System bzw. Stimulus-Response-System Response auf Stimulus innerhalb bestimmter Zeit

Verhalten des Systems als Tabelle beschreibbar Stimulus – Response

Arten von Stimuli periodisch

• vorhersagbare regelmäßige Zeitabstände• z.B. Sensorabfrage alle 50 Millisekunden

sporadisch (aperiodisch)• unregelmäßig, ggf. selten• z.B. Stromausfall• Verarbeitung meist über Interrupt

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.10

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Beispiel: Stimulus-Response-TabelleStimulus Response

einzelner Sensor positiv

Alarm auslösen, Lampen im Umfeld des Sensors einschalten

zwei oder mehr Sensoren positiv

Alarm auslösen, Lampen im Umfeld der Sensoren einschalten, Polizei alarmieren

Spannungsabfall zwischen 10% und 20%

Reservebatterie einschalten, Stromversorgung testen

Spannungsabfall von mehr als 20%

Reservebatterie einschalten, Stromversorgung testen, Alarm auslösen, Polizei alarmieren

Ausfall der Stromversorgung

Service benachrichtigen

Sensorausfall Service benachrichtigen

Panikschalter positiv Alarm auslösen, Lampen im Umfeld des Schaltpults einschalten, Polizei alarmieren

Alarmlöschung Alarm ausschalten, Lampen ausschalten

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.11

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Aufbau eines eingebetteten Echtzeitsystems

Sensor Sensor Sensor Sensor Sensor Sensor

Echtzeit-steuerungssystem

Aktor Aktor Aktor Aktor

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.12

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Überlegungen zur Architektur

Rechtzeitiges Reagieren erforderlich schnelles Umschalten zwischen Stimulusverarbeitungen

Unterschiedliche Zeitanforderungen sequentielle Abarbeitung meist nicht angemessen

Architekturansatz: Kooperierende nebenläufige Prozesse Echtzeitbetriebssystem unterschiedliche Prioritäten Interrupt-Steuerung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.13

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Einzelner Sensor-Aktor-Prozess

Sensor

Sensor-steuerung

Aktor

Daten-verarbeitun

g

Aktor-steuerung

Stimulus

Response

Sensorsteuerung sammelt Daten von Sensor, puffert diese Daten

gegebenenfalls Datenverarbeitung

verarbeitet gesammelte Daten und berechnet Reaktion Aktorsteuerung

erzeugt Steuerungssignale für die Aktoren

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.14

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Aktivitäten im Entwurfsprozess

Auswahl der Ausführungsplattform Hardware, Echtzeitbetriebssystem

Bestimmung der Stimuli und zugehörigen Responses Analyse des Zeitverhaltens

Zeitvorgaben für Stimulus – Verarbeitung – Response

Prozessentwurf nebenläufige Prozesse nach Architekturmuster -> 20.2

Algorithmenentwurf einschließlich Aufwandsanalyse (insbesondere Zeitaufwand)

Datenentwurf Festlegung des Datenaustausches zwischen den Prozessen

Prozessplanung (Scheduling)

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.15

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.0Prozesskoordination

Zugriff nebenläufiger Prozesse auf gemeinsame Ressourcen Lesen und Schreiben durch unterschiedliche Prozesse gegenseitiger Ausschluss erforderlich

• Semaphore• kritische Bereiche• Monitore

Ausgleich unterschiedlicher Geschwindigkeiten Bereitstellen und Abarbeiten von Daten Puffer erforderlich

• häufig Ringpuffer

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.16

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.1Modellierung von Echtzeitsystemen

Stimuli bewirken Zustandsübergänge Modellierung durch Zustandsmodelle Darstellung mit UML-Zustandsdiagrammen

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.17

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.1Zustandsmodell eines Echtzeitsystems

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.18

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.1.2Programmierung von Echtzeitsystemen Anforderungen an die Programmierumgebung

Zugriff auf Systemhardware Festlegung von Zeitpunkten / Zeitspannen für Operationen Effizienz

Verwendete Sprachen Assembler und systemnahe Sprachen wie C

• effizient• fehleranfällig wegen fehlender Features für Nebenläufigkeit

Echtzeitsprachen wie PEARL Objektorientierte Sprachen wie Java mit Erweiterungen

• asynchrone Kommunikation• absolute und relative Zeitangaben• nicht unterbrechbare Threads• keine Verzögerungen durch Speicherbereinigung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.19

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.0Architekturmuster

Grundstruktur eingebettete Software prozessorientiert interaktive Software objekt- / komponentenorientiert

Echtzeitarchitekturmuster Beobachten und Reagieren

• Überwachung und Darstellung von Sensorwerten• Sensorereignis löst Prozess zur Ereignisbehandlung aus

Umgebungssteuerung• Sensoren zur Umgebungsüberwachung• Aktoren zur Umgebungssteuerung• Sensorwerte lösen Steuersignale aus

Pipelineverarbeitung• Umwandlung von Daten zur Weiterverarbeitung• Folge von Verarbeitungsschritten ggf. auf verschiedenen Prozessoren

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.20

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.0Anwendung der Architekturmuster

Kombination der Muster Umgebungssteuerung mit Aktoren Beobachten der Aktoren und Reagieren bei Ausfall

Grundstruktur für weitere Detaillierung mit Entwurfsmustern, z.B. Ausführungssteuerung Kommunikation Resourcenzuweisung

Optimierung der Prozessstruktur erforderlich Architekturmuster als Entwurfsvorlagen meist ineffizient nicht zu viele Prozesse verwenden klarer Zusammenhang zwischen Prozessen

und Sensoren und Aktoren erforderlich

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.21

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.1Muster: Beobachten und Reagieren

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.22

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.1Prozess: Beobachten und Reagieren

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.23

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.1Beispiel: Beobachten und Reagieren

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.24

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.2Muster: Umgebungssteuerung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.25

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.2Prozess: Umgebungssteuerung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.26

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.2Beispiel: Umgebungssteuerung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.27

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.3Muster: Pipelineverarbeitung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.28

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.3Prozess: Pipelineverarbeitung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.29

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.2.3Beispiel: Pipelineverarbeitung

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.30

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.3 Analyse des Zeitverhaltens

Bestimmung der Häufigkeit von Prozessausführungenum Antwortzeiten garantieren zu können leicht zu berechnen bei periodischen Stimuli schwierig bei sporadischen Stimuli

(Wahrscheinlichkeitsrechnung) Ersatz sporadischer Stimuli durch periodische möglich

• sporadisch: Interrupt bei Ausfall der Stromversorgung• periodisch: Abfrage der Stromversorgung alle x msec

Wesentliche Faktoren Fristen Häufigkeiten Ausführungszeiten

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.31

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.3 Beispiel: Zeitanforderungen

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.32

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.3 Beispiel: Zeitanforderungen im Prozessmodell

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.33

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.0Echtzeitbetriebssysteme

Grundlegende Komponenten Echtzeituhr: vorwiegend für periodische Prozesse Interrupt-Handler: für sporadische Ereignisse Scheduler (Einplaner):

zur Auswahl des auszuführenden Prozesses Resourcenmanager: Zuordnung und Freigabe Dispatcher (Verteiler): zum Starten der Prozessausführung

Zusätzliche Komponenten Plattenspeicherverwaltung Fehlerverwaltung Konfigurationsmanager

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.34

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.0Komponenten eines Echtzeitbetriebssystems

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.35

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.1Prozessverwaltung

Grundlegende Prioritätsstufen Interrupt-Stufe

• Vorrangstufe für Prozesse mit sehr kurzer Antwortzeit• Echtzeituhr immer auf Interrupt-Stufe

Echtzeitstufe• nachrangige Stufe für periodische Prozesse

weitere Unterteilung der Prioritätsstufen möglich Ziel: Sicherung der Antwortzeit für alle Prozesse

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.36

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.1Prozessverwaltung

Bearbeitung von Interrupts Sprung zu Interrupt-Routine Interrupt-Routine muss kurz, einfach und schnell sein

• meist Sperrung anderer Interrupts• Bearbeitung des Ereignisses• Rückkehr zum unterbrochenen Prozess

Bearbeitung von periodischen Prozessen unterschiedliche Häufigkeiten, Ausführungszeiten,

Antwortzeiten Echtzeituhr erzeugt periodisch Interrupts Interrupt ruft Scheduler auf Scheduler wählt einen lauffähigen Prozess zur Ausführung aus

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.37

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.1Starten von Prozessen

© Prof. Dr. Andreas M. Heinecke, WHS Gelsenkirchen.

Wissen. Was praktisch zählt.

Stand: 04.06.13 Folie 20.38

Software-Engineering SS 2013 – Alle Master-Studiengänge der Informatik

20.4.1Einplanungsstrategien

Zeitplanung ohne Unterbrechungnon pre-emptive scheduling einmal gestarteter Prozess läuft,

bis er abgeschlossen oder blockiert ist

Zeitplanung mit Unterbrechungpre-emptive scheduling laufender Prozess kann

durch Prozess höherer Priorität unterbrochen werden

Zeitplanungsalgorithmen Ausführung reihum (Round-Robin) Vorzug für höchste Frequenz (Rate Monotonic Scheduling RMS) Dringlichkeitsorientiert: Prozess mit kürzester Anwortzeit zuerst