20 Eingebettete Software



Ähnliche Dokumente
Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Echtzeitscheduling (1)

AMS Alarm Management System

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

GRS SIGNUM Product-Lifecycle-Management

Dok.-Nr.: Seite 1 von 6

Anwenderleitfaden Citrix. Stand Februar 2008

2 Echtzeitbetriebssysteme

Projektplan(ung) zu CYOUTOO

Eine Logikschaltung zur Addition zweier Zahlen

Java Enterprise Architekturen Willkommen in der Realität

Fragebogen ISONORM 9241/110-S

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Internet Explorer Version 6

Mindestanforderungen an. Inland ECDIS Geräte im Informationsmodus und vergleichbare Kartenanzeigegeräte. zur Nutzung von Inland AIS Daten

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

Fragen und Antworten zum Thema. Lieferanspruch

Lizenzierung von System Center 2012

gallestro BPM - weit mehr als malen...

Übungen zur Softwaretechnik

Kontaktlos bezahlen mit Visa

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Funktionaler Zusammenhang. Lehrplan Realschule

Noten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

9001 weitere (kleinere) Änderungen

Buddy - Algorithmus Handbuch für Endnutzer Stand

Zuverlässiger IT-Service und Support Wir haben Ihr EDV-System im Griff.

Handbucherweiterung Zuschlag

Broadband Connectivity Services

Anleitung zur Einrichtung von Kontoweckern im Online Banking

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Wichtiges Thema: Ihre private Rente und der viel zu wenig beachtete - Rentenfaktor

Nüchtern betrachtet führt jegliche Wissenschaft lediglich zum vorläufig letzten Irrtum. (Kafka)

Das digitale Klassenund Notizbuch

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Sicherheit im Online-Banking. Verfahren und Möglichkeiten

Systeme 1. Kapitel 10. Virtualisierung

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

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

Projekte Packen, Kopieren und Versenden

3.14 Die Programmieroberfläche Programmierung

Der Schutz von Patientendaten

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Wenn Sie Zug um Zug den künftigen Anforderungen gerecht werden wollen

3D Visualisierung von UML Umgebungsmodellen

Windows Server 2008 (R2): Anwendungsplattform

Im Folgenden werden einige typische Fallkonstellationen beschrieben, in denen das Gesetz den Betroffenen in der GKV hilft:

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

impact ordering Info Produktkonfigurator

Eine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone

Erfassung von Umgebungskontext und Kontextmanagement

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

auf Frauen und Männer in gleicher Weise bezogen. 1 Alle maskulinen Bezeichnungen von Personen und Funktionsträgern in dieser Satzung sind

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

Microsoft Office Visio 2007 Infotag SemTalk Thema: Prozessmodellierung

Exkurs: Formatvorlage für Anforderungsanalyse-Dokument

ClickProfile Mobile. Leitfaden Client. Ihre Vision ist unsere Aufgabe

SAFEYTEAMS-Newsletter Nr. 5

Effiziente Zählerprozesse mit CS.MW_Mobile Workforce

Round-Robin Scheduling (RR)

Local Control Network

Kybernetik Braitenberg Vehikel

FAQ. Häufige VoIP-Probleme

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Informatik-Sommercamp Mastermind mit dem Android SDK

I P A S M M D Innovative Software zur Prozessoptimierung. Prozessoptimierung durch Mensch-Maschine-Diagramm

Bewusster Umgang mit Smartphones

Kaufvertrag / Mietvertrag / Leasingvertrag über die Lieferung von Hardware und Systemsoftware

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

Bedienungsanleitung. E-Learning Software VedA

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

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Einsatzbearbeitung im Sanitätsdienst

Supportkonzept. Datum: Inhaltsverzeichnis: 1. Verwendungszweck Anforderungen 3

Elektrische Automation. Engineering. Datenaustausch Mechanik Elektrik Software. Aktivitäten des VDMA

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Informationen zur Lizenzierung von Windows Server 2008 R2

Konzept Projekt Lisa

SAP Enterprise Asset Management Maintenance Worker Role

SDD System Design Document

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

OSEK / OSEKtime - ein Vergleich

Übungsklausur vom 7. Dez. 2007

Installation von Malwarebytes

Dämon-Prozesse ( deamon )

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Transkript:

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 Stand: 04.06.13 Folie 20.1 20 Eingebettete Software 20.3 Analyse des Zeitverhaltens Antwortzeiten Ausführungszeiten 20.4 Echtzeitbetriebssysteme Prozessverwaltung Prioritäten Scheduling Stand: 04.06.13 Folie 20.2 1

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 Stand: 04.06.13 Folie 20.3 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 Stand: 04.06.13 Folie 20.4 2

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 Stand: 04.06.13 Folie 20.5 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 Stand: 04.06.13 Folie 20.6 3

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 Stand: 04.06.13 Folie 20.7 20.1.0 Entwurf 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 Stand: 04.06.13 Folie 20.8 4

20.1.0 Reaktive 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 Stand: 04.06.13 Folie 20.9 20.1.0 Beispiel: Stimulus-Response-Tabelle píáãìäìë ÉáåòÉäåÉê=pÉåëçê=éçëáíáî oéëéçåëé ^ä~êã=~ìëä ëéåi=i~ãééå=áã=rãñéäç=çéë=péåëçêë=éáåëåü~äíéå òïéá=ççéê=ãéüê=péåëçêéå= éçëáíáî ^ä~êã=~ìëä ëéåi=i~ãééå=áã=rãñéäç=çéê=péåëçêéå=éáåëåü~äíéåi= mçäáòéá=~ä~êãáéêéå pé~ååìåöë~äñ~ää=òïáëåüéå= oéëéêîéä~ííéêáé=éáåëåü~äíéåi=píêçãîéêëçêöìåö=íéëíéå NMB=ìåÇ=OMB pé~ååìåöë~äñ~ää=îçå=ãéüê= oéëéêîéä~ííéêáé=éáåëåü~äíéåi=píêçãîéêëçêöìåö=íéëíéåi=^ä~êã= ~äë=omb ~ìëä ëéåi=mçäáòéá=~ä~êãáéêéå ^ìëñ~ää=çéê= péêîáåé=äéå~åüêáåüíáöéå píêçãîéêëçêöìåö péåëçê~ìëñ~ää péêîáåé=äéå~åüêáåüíáöéå m~åáâëåü~äíéê=éçëáíáî ^ä~êãä ëåüìåö ^ä~êã=~ìëä ëéåi=i~ãééå=áã=rãñéäç=çéë=påü~äíéìäíë=éáåëåü~äíéåi= mçäáòéá=~ä~êãáéêéå ^ä~êã=~ìëëåü~äíéåi=i~ãééå=~ìëëåü~äíéå Stand: 04.06.13 Folie 20.10 5

20.1.0 Aufbau eines eingebetteten Echtzeitsystems Sensor Sensor Sensor Sensor Sensor Sensor Echtzeitsteuerungssystem Aktor Aktor Aktor Aktor Stand: 04.06.13 Folie 20.11 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 Stand: 04.06.13 Folie 20.12 6

20.1.0 Einzelner Sensor-Aktor-Prozess Sensor Aktor Stimulus Response Sensorsteuerung Datenverarbeitung Aktorsteuerung Sensorsteuerung sammelt Daten von Sensor, puffert diese Daten gegebenenfalls Datenverarbeitung verarbeitet gesammelte Daten und berechnet Reaktion Aktorsteuerung erzeugt Steuerungssignale für die Aktoren Stand: 04.06.13 Folie 20.13 20.1.0 Aktivitä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) Stand: 04.06.13 Folie 20.14 7

20.1.0 Prozesskoordination 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 Stand: 04.06.13 Folie 20.15 20.1.1 Modellierung von Echtzeitsystemen Stimuli bewirken Zustandsübergänge Modellierung durch Zustandsmodelle Darstellung mit UML-Zustandsdiagrammen Stand: 04.06.13 Folie 20.16 8

20.1.1 Zustandsmodell eines Echtzeitsystems Stand: 04.06.13 Folie 20.17 20.1.2 Programmierung 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 Stand: 04.06.13 Folie 20.18 9

20.2.0 Architekturmuster 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 Stand: 04.06.13 Folie 20.19 20.2.0 Anwendung 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 Stand: 04.06.13 Folie 20.20 10

20.2.1 Muster: Beobachten und Reagieren Stand: 04.06.13 Folie 20.21 20.2.1 Prozess: Beobachten und Reagieren Stand: 04.06.13 Folie 20.22 11

20.2.1 Beispiel: Beobachten und Reagieren Stand: 04.06.13 Folie 20.23 20.2.2 Muster: Umgebungssteuerung Stand: 04.06.13 Folie 20.24 12

20.2.2 Prozess: Umgebungssteuerung Stand: 04.06.13 Folie 20.25 20.2.2 Beispiel: Umgebungssteuerung Stand: 04.06.13 Folie 20.26 13

20.2.3 Muster: Pipelineverarbeitung Stand: 04.06.13 Folie 20.27 20.2.3 Prozess: Pipelineverarbeitung Stand: 04.06.13 Folie 20.28 14

20.2.3 Beispiel: Pipelineverarbeitung Stand: 04.06.13 Folie 20.29 20.3 Analyse des Zeitverhaltens Bestimmung der Häufigkeit von Prozessausführungen um 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 Stand: 04.06.13 Folie 20.30 15

20.3 Beispiel: Zeitanforderungen Stand: 04.06.13 Folie 20.31 20.3 Beispiel: Zeitanforderungen im Prozessmodell Stand: 04.06.13 Folie 20.32 16

20.4.0 Echtzeitbetriebssysteme 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 Stand: 04.06.13 Folie 20.33 20.4.0 Komponenten eines Echtzeitbetriebssystems Stand: 04.06.13 Folie 20.34 17

20.4.1 Prozessverwaltung 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 Stand: 04.06.13 Folie 20.35 20.4.1 Prozessverwaltung 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 Stand: 04.06.13 Folie 20.36 18

20.4.1 Starten von Prozessen Stand: 04.06.13 Folie 20.37 20.4.1 Einplanungsstrategien Zeitplanung ohne Unterbrechung non pre-emptive scheduling einmal gestarteter Prozess läuft, bis er abgeschlossen oder blockiert ist Zeitplanung mit Unterbrechung pre-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 Stand: 04.06.13 Folie 20.38 19