Atomic Basic Blocks Eine kontrollflussunabhängige Zwischendarstellung für Echtzeitsysteme

Ähnliche Dokumente
13 Ausblick. Überblick. Ausblick EZS2 Hiwi Studien- und Diplomarbeiten. wosch WS 2007/08 EZS 13-1

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

Konzepte von Betriebssystem-Komponenten: Mehrkern-Echtzeitsysteme

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

SOMA Reverse Engineering

Gemeinsamkeiten und Unterschiede bei der Anwendung für die Analyse von Geschäftsprozessen

Ausführungszeiten. Worst-Case Execution-Time. Übung zur Vorlesung EZS. Zeitgeber Oszilloskop Diskussion

Echtzeitsysteme (EZS) 2 Integrierte Lehrveranstaltung, 4 SWS. Überblick. Entwicklungsumgebung. Experiment 1: Hau den Lukas

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Ein einfaches Modell zur Fehlerfortpflanzung

Einführung in die Soziologie virtualisierter Vergesellschaftung

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

HBF IT-Systeme. BBU-BSK Übung 2 Stand:

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

OSEK / OSEKtime - ein Vergleich

1.5 Umsatzsteuervoranmeldung

1 topologisches Sortieren

Portierung eines geeigneten LZ-basierten Kompressors auf LegUp-HLS

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

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

Sehr geehrte Faktor-IPS Anwender,

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Einführung in Eclipse und Java

Local Control Network

Gesicherte Prozeduren

Authentikation und digitale Signatur

Dokumentation Exchange

Zeichen bei Zahlen entschlüsseln

HP Service Virtualization. Bernd Schindelasch 19. Juni 2013

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

Projektplan(ung) zu CYOUTOO

Kurzanleitung MAN E-Learning (WBT)

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Programmierkurs Java

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

5.2 Neue Projekte erstellen

HTBVIEWER INBETRIEBNAHME

Leitfaden für die Mitgliederregistrierung auf der neuen Webseite des SFC-Erkelenz

Entwicklung und Einsatz von Signaturserverdiensten

Künstliche Intelligenz Maschinelles Lernen

Information Systems Engineering Seminar

OSEK Deadline-Analyse

Policy-Framework (PFW) - Eine Methode zur Umsetzung von Sicherheits-Policies im Cloud-Computing

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Cambridge ESOL BULATS Online FAQs Konfiguration des Internet Explorers

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Integrationsprozesse. cross component BPM - Steuerung systemübergreifender Szenarien. Konrad Lubenow, FHTW Berlin, Juli 2007

Task: Nmap Skripte ausführen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Digitale Biodiversitätsatlanten

Modellierung von Positionssensoren. Jörg Roth Fachbereich Informatik Fernuniversität Hagen

Java Entwicklung für Embedded Devices Best & Worst Practices!

Eine Logikschaltung zur Addition zweier Zahlen

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

Auktion name adresse pseudonym adresse /bewertungszahl. Gebot. höhe zeitpunkt bieter. initiiert

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

Schnelle und konsistente Stoffwertberechnung mit Spline Interpolation Arbeiten innerhalb der IAPWS Task Group "CFD Steam Property Formulation"

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Complex Event Processing für intelligente mobile M2M- Kommunikation

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Microsoft Access 2013 Navigationsformular (Musterlösung)

Informatik I Tutorial

Session 8: Projektvorstellung Transferprojekt itsowl-tt-savez 18. August 2015, Gütersloh.

Ausgewählte Kapitel eingebetteter Systeme

Version 0.3. Installation von MinGW und Eclipse CDT

BPMN. Suzana Milovanovic

WÄRMEMESSUNG MIT DURCHFLUSSMENGENMESSER, TEMPERATURSENSOREN UND LOXONE

Smart Meter Gateway: Informationsflusskontrolle und Datenschutz mittels Security Kernel Framework

U08 Entwurfsmuster (II)

Software Engineering Interaktionsdiagramme

Datenübernahme easyjob 3.0 zu easyjob 4.0

Jan Parthey, Christin Seifert. 22. Mai 2003

PCC Outlook Integration Installationsleitfaden

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

2. Installation der minitek-app auf einem Smartphone. 3. Verbindung zwischen minitek-app und minitek herstellen

Volksbank Oelde-Ennigerloh-Neubeckum eg

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Anleitung zur Einrichtung des Netzwerkes mit DHCP im StudNET des Studentenwerkes Leipzig. studnet-website:

Anleitung zur Einrichtung des Netzwerkes mit DHCP. im StudNET des Studentenwerkes Leipzig

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Lehrer: Einschreibemethoden

Installationsanleitung. Novaline Datenarchivierung / GDPdU

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Outlook 2000 Thema - Archivierung

10 Erweiterung und Portierung

EXCHANGE Neuerungen und Praxis

Eltako-FVS. Lizenzaktivierung ohne Internetverbindung

Print2CAD 2017, 8th Generation. Netzwerkversionen

Lizenzierung von System Center 2012


Transkript:

Atomic Basic Blocks Eine kontrollflussunabhängige Zwischendarstellung für Echtzeitsysteme Fabian Scheler Martin Mitzlaff Wolfgang Schröder-Preikschat Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg http://www4.informatik.uni-erlangen.de/~scheler Fabian.Scheler@informatik.uni-erlangen.de 1

Entwicklung am Automobilmarkt ereignisgesteuerte Kommunikation CAN zeitgesteuerte Kommunikation FlexRay föderales System OSEK/VDX integrierte Systeme AUTOSAR Fail-stop Semantik ABS, ESP Fail-operational Semantik {Steer,Break}-by-Wire Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 2

Konsequenzen Migration Ereignissteuerung Zeitsteuerung Legacy Applications falls möglich: Wiederverwendung (z.b. virtuelle CAN-Netzwerke auf Basis von FlexRay) nicht sicherheitskritische Subsysteme, z.b. Komfortanwendungen sonst: Migration/Portierung sicherheitskritische Subsyteme, z.b. ABS, ESP Portierung arbeitsintensiv Fehlerquelle Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 3

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 4

Ein triviales Beispiel Sensor1 Aktor Sensor2 Controller Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 5

Explizit modellierte Abhängigkeiten 1 1 Sensor1 2 1 1 Versand von Nachrichten 2 Fadensynchronisation Sensor2 2 Controller Aktor Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 6

Explizit modellierte Abhängigkeiten 1 das ist ein triviales Beispiel reale Anwendungen beinhalten 200 Tasks eine Größenordnung mehr 1 Abhängigkeiten statische Ablaufpläne zu erstellen ist nicht einfach weitere Signale mit hoher Frequenz 2 abtasten 1 Sensor1 Berechnungen überschreiten Rechenzeit Berechnungen aufteilen... manuell??? 1 Versand von Nachrichten 2 Fadensynchronisation Sensor2 2 Controller Aktor Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 7

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 8

Ist Migration sinnvoll? Lässt sich eine Migration a priori ausschließen? wofür eignet sich Zeit- bzw. Ereignissteuerung gibt es Anwendungsfälle, die ein bestimmtes Paradigma - bevorzugen oder sogar - ausschließen nicht-funktionale Eigenschaften Gibt es reale Anwendungsszenarien? Will man komplette Systeme migrieren? Gibt es andere Gründe für eine Migration? Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 9

nicht-funktionale Eigenschaften zeitgesteuert ereignisgesteuert Analysierbarkeit statische Ablaufpläne Antwortzeitanalyse Vorhersagbarkeit Testbarkeit Erweiterbarkeit Fehlertoleranz Ressourcennutzung (nicht-periodische Ereignisse) statische Ablaufpläne WCET Analyse + statische Ablaufpläne Neuberechnung statischer Ablaufpläne Replikdeterminismus Abfragebetrieb dynamischer Ablaufplan, jedoch ist Determinismus ausreichend WCET Analyse + Antwortzeitanalyse erneute Antwortzeitanalyse Leader-Follower, Gruppenkommunikation Unterbrechungsgesteuert, {aperiodische, sporadische...} Server Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 10

nicht-funktionale Eigenschaften liefern kein endgültiges Entscheidungskriterium allenfalls tendieren - Fehlertoleranz zu zeitgesteuerten Systemen - nicht-periodische Ereignisse zu ereignisgesteuerten Systemen zeitgesteuertes System sicherheitskritisch: Absicherung durch Fehlertoleranz wenige nicht-periodische Ereignisbehandlungen Polling ereignisgesteuertes System viele nicht-periodische Ereignisse wenige sicherheitskritische Ereignisbehandlungen Leader-Follower Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 11

Anwendungsszenarien Migration einzelner Subsysteme Wiederverwendung in zeit- bzw. ereignisgesteuerten Systemen Beispiel: ESP mehrere Sensoren und Aktoren gemeinsame Datenstrukturen notwendig ereignisgesteuerte Systeme: zwischen versch. Knoten: OSEK COM Messages auf demselben Knoten: OSEK Ressourcen und OSEK Events zeitgesteuerte Systeme: statisch berechnete Ablaufpläne Berücksichtigung aller Abhängigkeiten Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 12

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 13

Ansatz Entkopplung von Anwendung und Laufzeitsystem Zwischendarstellung unabhängig von der Kontrollflussabstraktion Kombination verschiedener Front-Ends und Back-Ends ähnlich zum Übersetzerbau Zwischendarstellung Kontrollflussgraphen (CFG) Basisblöcke Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 14

Atomic Basic Blocks Abhängigkeiten zwischen verschiedenen CFGs Datenabhängigkeiten explizit modellierte logische und zeitliche Abhängigkeiten gegenseitiger Ausschluss ABB-Graph überlagert einen Wald aus CFGs ABBs aggregieren mehrere Basisblöcke ABBs werden immer über genau einen Basisblock verlassen und betreten Grenzen ABB abzweigen/einmünden von anderen CFGs kritische Abschnitte Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 15

Atomic Basic Blocks 1 2 3 Sensor1 3 4 1 SendMessage() 2 SendMessage()/WaitEvent() 3 Release-/GetResource() 4 SendMessage() Sensor2 Controller Actor Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 16

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 17

Der Real-Time Systems Compiler betriebssystemgewahrer Übersetzer basierend auf der LLVM (Low Level Virtual Machine) verwendet ABBs als Zwischendarstellung ABBs sind basierend auf dem LLVM-Assembler implementiert - von der LLVM verwendete Zwischendarstellung - typisierter Assembler Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 18

Eingabe & Ausgabe Source Implementations Target Implementations RTSC Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 19

BS-gewahres Front- und Back-End Back-End Source Implementations Target Implementations RTSC Front-End OS Target Specifications Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 20

Ereignisse mapping Back-End Source Implementations Target Task DB RTSC Target Implementations mapping Front-End Source Task DB OS Target Specifications Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 21

Abbildung von ABBs mapping Back-End Source Implementations Target Task DB Analyser / Composer Target Implementations mapping Front-End Source Task DB OS Target Specifications Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 22

WCET Analyse mapping Back-End Source Implementations Target Task DB Analyser / Composer Target Implementations mapping Source Task DB Front-End Timing Analysis Hardware OS Target Specifications Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 23

Planbarkeitsanalyse mapping Checker valid Back-End Source Implementations invalid Target Implementations Target Task DB Analyser / Composer mapping Front-End Timing Analysis Source Task DB Hardware OS Target Specifications Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 24

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 25

RTSC: Einordnung Source Implementations Resolver Resolver verknüpft ABB-Endpunkte erzeugt globalen Graph mapping Extractor Extractor generiert ABBs Source Task DB Scanner Front-End Scanner sucht ABB-Endpunkte systemabhängig Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 26

RTSC: Einordnung Source Implementations Resolver Resolver verknüpft ABB-Endpunkte erzeugt globalen Graph mapping Extractor Extractor generiert ABBs Source Task DB Scanner Front-End Scanner sucht ABB-Endpunkte systemabhängig Source OS Specifications Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 27

Eingaben und Ausgaben Eingabe reduzierbarer Kontrollflussgraph - (natürliche) Schleifen - Verzweigungen (if/switch) - kein goto Ausgabe ABB-Graph überlagert Kontrollflussgraph Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 28

Algorithmus - Überblick abb := new ABB() Source Implementations Resolver Extractor bb := nextbb() (depth-first) mapping Scanner Front-End bb!= 0 false finished Source Task DB true abbterm := scanbb(bb) Source OS Specifications abbterm!= 0 true (first,bb) := splitbb(bb) false addbb(abb,bb) closeabb(abb,first) abb := openabb(bb) abbterm := 0 Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 29

Sequenzen abb := new ABB() bb := nextbb() (depth-first) bb!= 0 false finished true abbterm := scanbb(bb) abbterm!= 0 true (first,bb) := splitbb(bb) false addbb(abb,bb) closeabb(abb,first) abb := openabb(bb) (1) abbterm := 0 (1) hole und scanne ersten Basisblock Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 30

Sequenzen abb := new ABB() bb := nextbb() (depth-first) bb!= 0 false finished true abbterm := scanbb(bb) abbterm!= 0 true (first,bb) := splitbb(bb) false addbb(abb,bb) closeabb(abb,first) abb := openabb(bb) (1) (2) abbterm := 0 (1) hole und scanne ersten Basisblock (2) ein ABB-Endpunkt wurde gefunden - splitte Basisblock - schließe aktuellen ABB und öffne neuen ABB Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 31

Sequenzen abb := new ABB() bb := nextbb() (depth-first) bb!= 0 false finished true abbterm := scanbb(bb) abbterm!= 0 true (first,bb) := splitbb(bb) false addbb(abb,bb) closeabb(abb,first) abb := openabb(bb) (1) (2) (3) abbterm := 0 (1) hole und scanne ersten Basisblock (2) ein ABB-Endpunkt wurde gefunden - splitte Basisblock - schließe aktuellen ABB und öffne neuen ABB (3) scanne zweiten Teil des Basisblocks Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 32

Sequenzen abb := new ABB() bb := nextbb() (depth-first) bb!= 0 false finished true abbterm := scanbb(bb) abbterm!= 0 true (first,bb) := splitbb(bb) false addbb(abb,bb) closeabb(abb,first) abb := openabb(bb) (1) (2) (3) (4) abbterm := 0 (1) hole und scanne ersten Basisblock (2) ein ABB-Endpunkt wurde gefunden - splitte Basisblock - schließe aktuellen ABB und öffne neuen ABB (3) scanne zweiten Teil des Basisblocks (4) nächsten Basisblock holen, scannen und zum ABB hinzufügen Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 33

Verzweigungen/Schleifen Erkennung Tiefensuche Nachfolger im CFG - Teil eines ABB - ABB ist bereits abgeschlossen Transformation existierender ABBs splitten von ABBs nach - nach verzweigenden Knoten - zusammenführenden Knoten - und vor Schleifenköpfen - Knoten, die eine Schleife verlassen verschachtelte Kontrollkonstrukte rekursiv Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 34

Überblick Das Migrationsproblem Ist Migration sinnvoll? Atomic Basic Blocks Der Real Time Systems Compiler Erzeugung von Atomic Basic Blocks Ausblick Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 35

Ausblick Status einfach Prototyp eines C-Front-Ends Algorithmus zur Erzeugung von ABB-Graphen Abhängigkeiten durch - globale Variablen - Versenden/Empfangen von Nachrichten (in Arbeit) - Abzweigung von Ereignisbehandlungen geplant Front-Ends und Back-Ends für - OSEK OS / AUTOSAR OS - OSEK ttos Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 36

Ausblick Status einfach Prototyp eines C-Front-Ends Algorithmus zur Erzeugung von ABB-Graphen Abhängigkeiten durch - globale Variablen - Versenden/Empfangen von Nachrichten (in Arbeit) - Abzweigung von Ereignisbehandlungen geplant Vielen Dank für Ihre Aufmerksamkeit! Front-Ends und Back-Ends für - OSEK OS / AUTOSAR OS - OSEK ttos Fabian.Scheler@informatik.uni-erlangen.de - PEARL 2007 37