Slothful Linux: An Efficient Hybrid Real-Time System by Hardware-Based Task Dispatching. Rainer Müller



Ähnliche Dokumente
Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems

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

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen

Military Air Systems

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

Echtzeit mit Linux. Erweiterungen und deren Anwendung. Martin Krohn. 2. Februar 2006

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

Untersuchungen zur Zulassung von Software unterschiedlicher Sicherheitsklassen auf einem Prozessormodule unter dem neuartigen Betriebssystem PikeOS

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Embedded Linux. Embedded Linux. Daniel Buchheim Seminar "Eingebettete drahtlose Systeme"

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

Adeos & Xenomai. Echtzeitbetriebssysteme / SS09. Alexander Behringer. Georg-Simon-Ohm-Hochschule Nürnberg. 24. Juni 2009

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Betriebssystembau (BSB)

Ein mobiler Electronic Program Guide für Android

Hardware Virtualisierungs Support für PikeOS

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

Performance Messungen von FreeRTOS und

OSEK / OSEKtime - ein Vergleich

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Linux wird echtzeitfähig: RT-Extension vs. PREEMPT_RT

Scheduler. Optimierung des Schedulings. Gliederung. Allgemeine Ziele. Synchronisationsprotokolle

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop

OSEKtime - Time-Triggered OSEK/OS

Meine SPS kann Linux, und nun?

Hybride Apps DPR und Android auf dem Xilinx ZYNQ. Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Rechnernutzung in der Physik. Betriebssysteme

XEN Virtualisierung und mehr

Cloud Computing. Betriebssicherheit von Cloud Umgebungen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y

The Modular Structure of Complex Systems Seminar SoftwareArchitektur Fabian Schultz

Storage Area Networks im Enterprise Bereich

User Level Device Driver am Beispiel von TCP

RTEMS- Echtzeitbetriebssystem

Smart Meter Gateway: Informationsflusskontrolle und Datenschutz mittels Security Kernel Framework

Hyper-V Grundlagen der Virtualisierung

Simple Scope. ecos-vertiefung. Florian Franzmann Tobias Klaus Peter Wägemann

Mikrocontroller Grundlagen. Markus Koch April 2011

Achim Marx Mittwoch, 2. Oktober 2013 S&L Netzwerktechnik GmbH 1

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

Xenologie oder wie man einen Plastikmainframe baut

Dynamic Ressource Management

Ereignisgesteuertes Ressourcenmanagement mit der Oracle SOA-Suite

Treuhand Dialogik Cloud

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

A Domain Specific Language for Project Execution Models

Switch 1 intern verbunden mit onboard NICs, Switch 2 mit Erweiterungs-NICs der Server 1..6

Ist Ihre Mainframe Anwendungs- Umgebung wirklich so effizient, wie Sie denken?


Wie profitiert SAP MaxDB von SSD Technologie?

WINDOWS 8 WINDOWS SERVER 2012

Echtzeitanforderung und Linux

Leistungsanalyse unter Linux

Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012

Virtuelle Maschinen. von Markus Köbele

Windows CE. Process Control and Robotics. Fabian Garagnon

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

AppyourNet Neue Switch-Funktionalität in professionellen Netzen

High Performance Datenerfassung Tests am Beispiel WEGA

Standardsoftware. Prozessarchitektur. Prof. Dr. Bernhard Schiefer 3-1

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

OSEK Deadline-Analyse

TP2. Gefördert durch: Projektträger: Halbzeitpräsentation TP

Solaris Cluster. Dipl. Inform. Torsten Kasch Bielefeld.DE> 8. Januar 2008

gekapselte Mechatronik-Objekte

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

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal

kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1

Fragen zur GridVis MSSQL-Server

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

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

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Technisches Datenblatt

OSL Storage Cluster und RSIO unter Linux Storage-Attachment und Hochverfügbarkeit in 5 Minuten

Selbstbaulösungen für D-STAR

Verwendung des Terminalservers der MUG

Code of Conduct (CoC)

Virtuelle Maschinen Konzept von VMWare

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

e-life der elektronische Lebenszyklus eines Mitarbeiters

IT-Beratung: Vom Geschäftsprozess zur IT-Lösung

Tag 2 Eingabe und Interrupts

Forschungsprojekt ProSyMig. Projekt- und Abschlussarbeiten Robert Rößger Prof. Dr.-Ing. Jörn Schneider

Domänenanalyse Threadverwaltung/Scheduling

Betriebssysteme Kap A: Grundlagen

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

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

3.14 Die Programmieroberfläche Programmierung

Ein mobiler Electronic Program Guide

VMware als virtuelle Plattform

Transkript:

Slothful Linux: An Efficient Hybrid Real-Time System by Hardware-Based Task Dispatching Rainer Müller 21. November 2013

Spezialisierung von Betriebssystemen Vielzweckbetriebssysteme (General Purpose OS, GPOS) Benutzerinteraktion, Datenkommunikation, Entertainment,... weitreichende Hardwareunterstützung Echtzeitbetriebssysteme (Real Time OS, RTOS) Steuerung von Fertigungsmaschinen, Industrieanlagen,... spezialisiert für bestimmte Aufgaben weiche, feste oder harte Terminvorgaben Rainer Müller Slothful Linux 2

Konsolidierung Trennung in Echtzeitverarbeitung und restliche Aufgaben RTOS: Maschinensteuerung GPOS: Kommunikation, Statistiken, Visualisierung,... Gemeinsamer Zugriff auf Daten Konsolidierung auf derselben Hardwareplattform Single Hardware Unit shared resources Other Components Controlled System sensor data control commands RT App RTOS Application Application Application GPOS network communication Slothful Linux: Integration des Linux-Kernels mit dem bestehendem Sloth-Echtzeitbetriebssystem Rainer Müller Slothful Linux 3

Überblick Sloth-Konzept Slothful Linux Evaluation Ausblick Rainer Müller Slothful Linux 4

Sloth-Konzept Idee: Threads as Interrupts Task-Aktivierung durch IRQ Hardware übernimmt das Einplanen und Einlasten Anwendbar auf statisch konfigurierte Echtzeitsysteme mit festen Prioritäten (z. B. OSEK/AUTOSAR OS) Rainer Müller Slothful Linux 5

Sloth-Design ActivateTask(Task1) prio=1 request IRQ Source Task1 CPU Hardware Periphery HW IRQ prio=2 request prio=3 request IRQ Source ISR2 IRQ Source Task3 IRQ Arbitration Unit curprio=x IRQ Vector Table Timer System Alarm Exp. prio=4 request IRQ Source Task4 task1() isr2() task3() task4() Hardware muss genügend Prioritäten zur Verfügung stellen Unterbrechungsanforderungen aus Software heraus für synchrone Aktivierungen Rainer Müller Slothful Linux 6

Vorteile des Sloth-Designs Schlanker, effizienter Kern Einheitliche Abstraktion für Tasks und ISRs unabhängig davon, ob Aktivierung durch Hardware oder Software ausgelöst wurde Einheitlicher Prioritätsraum für Tasks und ISRs keine Prioritätsumkehr (rate-monotonic priority inversion) Synchronisation durch Anheben der CPU-Priorität Priority Ceiling Protocol Rainer Müller Slothful Linux 7

Sloth-Familie Sloth-Konzept bereits in mehreren Bereichen erfolgreich event-triggered time-triggered OSEK OSEKtime Sloth [RTSS 09] Sleepy Sloth [RTSS 11] Sloth on Time [RTSS 12] AUTOSAR OS Rainer Müller Slothful Linux 8

Slothful Linux Übertragung der Vorteile des Sloth-Konzepts in ein kombiniertes System zusammen mit Linux Untersuchung der bestehenden auf Linux basierenden Ansätze 1. Veränderungen am Kernel, um Echtzeitverhalten zu implementieren (RT-PREEMPT-Patch) 2. Virtualisierung der Unterbrechungsbehandlung Rainer Müller Slothful Linux 9

Virtualisierung der Unterbrechungsbehandlung I-Pipe-Patch Basis von RTAI oder Xenomai Virtualisierung der Unterbrechungsbehandlung in Abstraktionsschicht Ansatz: Optimistic Interrupt Protection Rainer Müller Slothful Linux 10

Virtualisierung der Unterbrechungsbehandlung Process Process Process Linux Kernel I/O Drivers Hardware Interrupt blocking Interrupt Handlers Interrupt Shield Interrupt Controller Interrupts Interrupts Real-Time System RT-Task RT-Task RTOS kann jederzeit den Linux-Kernel unterbrechen, Linux-Kernel hat keinen Einfluss auf Ablauf im RTOS Rainer Müller Slothful Linux 11

Entwurf und Implementierung Zielplattform: Intel x86 APIC Sloth (bare-metal) Ziel: Prüfung der Realisierbarkeit Ausnutzung der Hardware ohne Einschränkungen Funktionsumfang: Tasks, Resources Slothful Linux Virtualisierung der Unterbrechungsbehandlung des Linux-Kernels Anpassung des Linux-Kernels auf Basis vorhandener Patches Kommunikationskanal zwischen Echtzeitanwendung und Prozessen unter Linux Funktionsumfang: Tasks, Resources, Pipes Rainer Müller Slothful Linux 12

Sloth auf Intel x86: Local APIC CPU Core 0 IDTR Execution Unit Local APIC Interrupt messages IPIs System Bus Interrupt messages I/O APIC External Interrupt Lines System Chipset Asynchrone Aktivierung von Tasks durch externe Interrupts Synchrone Aktivierung von Tasks durch self-ipis Rainer Müller Slothful Linux 13

Sloth auf Intel x86: Prioritäten Verdrängung von Unterbrechungsbehandlungen basiert auf Prioritätsgruppen Abbildung der Prioritäten auf Vektoreinträge Configuration: (priorities of tasks and resources) priorities 1 2 3 4 5 6 7 8 9 1011121314 APIC: vectors 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 0 31 reserved 1 2 3 4 5 6 7 8 9 10 11 12 13 14 priority groups Sloth auf Intel x86 umsetzbar Rainer Müller Slothful Linux 14

Entwurf und Implementierung Zielplattform: Intel x86 APIC Sloth (bare-metal) Ziel: Prüfung der Realisierbarkeit Ausnutzung der Hardware ohne Einschränkungen Funktionsumfang: Tasks, Resources Slothful Linux Virtualisierung der Unterbrechungsbehandlung des Linux-Kernels Anpassung des Linux-Kernels auf Basis vorhandener Patches Kommunikationskanal zwischen Echtzeitanwendung und Prozessen unter Linux Funktionsumfang: Tasks, Resources, Pipes Rainer Müller Slothful Linux 15

Slothful Linux: Veränderungen am Linux-Kernel Anpassung des I-Pipe-Patches Funktionsumfang sehr komplex bietet Optimistic Interrupt Protection für den Linux-Kernel Interrupts stall point Sloth Interrupts Intercepted Interrupts Sloth Real-Time Core Real-Time Domain Linux Kernel Root Domain Echtzeitsysteme als Module für den Linux-Kernel Rainer Müller Slothful Linux 16

Slothful Linux: Pipes Pipes ermöglichen Datentransfer von Echtzeitanwendung zu Prozessen des Linux-Kernels Real-Time Domain General-Purpose Domain RT-Task Sloth Real-Time Core Linux Kernel User-Space Process WritePipe() Buffer chardev read() shared memory /dev/slothpipe0 Rainer Müller Slothful Linux 17

Evaluation: System Services Laufzeitmessung mit Timestamp Counter auf Intel Atom mit 1.6 GHz 1400 Cycles Slothful Linux Sloth 1200 1000 800 600 400 200 0 Activate() Activate() w/ dispatch Terminate() w/ dispatch Chain() w/ dispatch GetRes() ReleaseRes() ReleaseRes() w/ dispatch Rainer Müller Slothful Linux 18

Evaluation: Latenz Messung der Interrupt-Latenz mit Local-APIC-Timer vom Zeitpunkt der Aktivierung bis zur ersten Instruktion der Behandlungsfunktion 3.0 Xenomai Slothful Linux Sloth 5000 2.5 4000 Latency [µs] 2.0 1.5 1.0 3000 2000 CPU Cycles 0.5 1000 0.0 0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Measurements Rainer Müller Slothful Linux 19

Zusammenfassung Slothful Linux ermöglicht parallele Ausführung von Sloth und Linux auf derselben Hardware Sloth läuft ohne Beeinträchtigungen durch Linux konstanter zusätzlicher Aufwand für Wechsel zwischen den Domänen niedrige Latenz für Verarbeitung von Unterbrechungen bzw. Aktivierungen von Tasks Ausblick: Unterstützung von Multi-Core-Systemen http://www4.cs.fau.de/research/sloth Rainer Müller Slothful Linux 20

Literaturverzeichnis Wanja Hofer, Daniel Lohmann, Fabian Scheler, and Wolfgang Schröder-Preikschat. Sloth: Threads as interrupts. In Proceedings of the 30th IEEE International Symposium on Real-Time Systems (RTSS 09), pages 204 213. IEEE Computer Society Press, December 2009. Wanja Hofer, Daniel Lohmann, and Wolfgang Schröder-Preikschat. Sleepy Sloth: Threads as interrupts as threads. In Proceedings of the 32nd IEEE International Symposium on Real-Time Systems (RTSS 11), pages 67 77. IEEE Computer Society Press, December 2011. Wanja Hofer, Daniel Danner, Rainer Müller, Fabian Scheler, Wolfgang Schröder-Preikschat, and Daniel Lohmann. Sloth on Time: Efficient hardware-based scheduling for time-triggered RTOS. In Proceedings of the 33rd IEEE International Symposium on Real-Time Systems (RTSS 12), pages 237 247. IEEE Computer Society Press, December 2012. Rainer Müller Slothful Linux