Echtzeitbetriebssysteme

Ähnliche Dokumente
Echtzeitbetriebssysteme

Fakultät für Informatik der Technischen Universität München. Kapitel 5. Echtzeitbetriebssysteme

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme

Embedded- und RT-Betriebssysteme

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

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

Konzepte von Betriebssystem- Komponenten:

Verteilte Echtzeit-Systeme

Fakultät für Informatik der Technischen Universität München. Scheduling. Exkurs: WCET (Worst Case Execution Time) - Analyse

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

Echtzeitfähige Kommunikation

Entwicklung einer FPGA-basierten asymmetrischen MPSoC Architektur

Military Air Systems

Echtzeit-BS vs. Standard-BS

Aktuelle RTOS-Entwicklungen aus der Forschung

Echtzeitbetriebsysteme

Strukturierung von Multimediasystemen für Fahrzeuge

Real Time Operating Systems (RTOS) = Echtzeit-Betriebssysteme. Eine Einführung. Klaus Kusche, Okt. 2011

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Technische Universität München WS 2006/2007 Fakultät für Informatik 15. Februar 2007 Prof. Dr. A. Knoll

Verteilte Echtzeit-Systeme

Oracle Database Appliance und Virtualisierung: OVM oder KVM?

RTOS Einführung. Version: Datum: Autor: Werner Dichler

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

Übung I Echtzeitbetriebssysteme

Konzepte von Betriebssystemkomponenten

Integrated Modular Avionics & ARINC 653

Real- Time Systems. Part 5: Real- 0me opera0ng systems. Fakultät für Informa0k der Technischen Universität München

Betriebssystem-basierte Virtualisierung

Hardware Virtualisierungs Support für PikeOS

1.5 Betriebssysteme für RT- Anwendungen: Echtzeitbetriebssysteme

Symbian OS. OS für kleine Endgeräte: Sven Walter

Unterschiede in den Konzepten von TinyOS und Embedded Linux

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

Real- Time Systems. Part 5: Real- 0me opera0ng systems. Fakultät für Informa0k der Technischen Universität München

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

Seminar: Mobile Geräte QNX Einführung

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

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

DBUS Interprozess-Kommunikation für Embedded-Plattformen

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/ November 2010

Embedded- und RT-Betriebssysteme. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Betriebssystemschichten ( )

Siemens AG Electronic Siemens Electronic Design and Design Manufacturing and Services. Produkte & Lösungen THE POWER OF IDEAS

Meine SPS kann Linux, und nun?

Embedded OS-9 auf RISC-Prozessoren von Motorola

Configurable Embedded Systems

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

Oracle 11g und Virtualisierung Johannes Ahrends Technical Director Quest Software GmbH

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

Verteilte Echtzeit-Systeme

Microkernel-Betriebssysteme Mach, L4, Hurd

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Ist nur Appliance ODA schon Rechenzentrum in der Kiste?

Einbindung der Restbussimulation unter Net2Run / Serie 61 in die LabVIEW-Welt

Inhaltsverzeichnis. Rechnerorganisation

Thread basierte partielle Rekonfiguration von SoC Systemen. Frank Opitz INF-M1 Anwendung 1 - Wintersemester 2009/

Partitionierung von rechenintensiven Aufgaben zwischen FPGA und CPUs

Betriebssysteme Vorstellung

Entwicklung eines FPGA basierten Distributed Computing System. Frank Opitz INF-M3 Seminar - Wintersemester 2010/11 26.

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1

Konzepte zur Steigerung der Preemptivität des Linux Kernels 2.6

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version.

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

Vortrag zur Seminarphase der PG Solar Doorplate MSP430 Wichtigste Grundlagen von David Tondorf

Reflex The Real-Time Event Flow EXecutive

Automatische Testsysteme und ihre Programmierung. Dresden, Michael Dittrich,

librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation

D Einführung Betriebssysteme

D Einführung Betriebssysteme

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

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Embedded OS für ARM Cortex Microcontroller

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

Der Scheduler von Windows 2000 Konzepte und Strategien

Willkommen zur. VO Betriebssysteme. Peter Puschner. Institut für Technische Informatik. Peter Puschner 1

Heiko Bobzin Poet Software GmbH

Inhalt. 3 Die Bitübertragungsschicht Überblick Frequenzbereiche und Kanäle Diskussion der Frequenzauswahl 50

Fakultät für Informatik der Technischen Universität München. Einführung TTP

Echtzeit-Messdatenerfassung. über WLAN. Stephan Habegger Senior Design Engineer. Neratec AG

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

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

Linux Terminal mit Ethernet und Java. Eine dynamische Plattform für Automatisierungsapplikationen?

Migration zu Embedded Linux. Christoph Stückjürgen. Organized by:

Standardsoftware für die Industrielle Bildverarbeitung

Embedded Linux gnublin Board Programmieren Sonstiges. Embedded Linux am Beispiel des Gnublin-Boards

Parallelisierung auf MPSoC-Plattformen

Echtzeitbetriebssysteme

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Die Technik hinter IoT: Arduino, Raspberry Pi & Co.

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik

QNX. Konzepte von Betriebssystem-Komponenten. 1. Was ist QNX? Martin Mitzlaff

SAFE HARBOR STATEMENT

Virtueller Speicher und Memory Management

Transkript:

Echtzeitbetriebssysteme TinyOS 349

Einsatzgebiet: AdHoc-Sensornetzwerke Begriff Smart-Dust: Viele kleine Sensoren überwachen die Umgebung Ziele: robuste und flächendeckende Überwachung Probleme: eingeschränkte Lebensdauer (Batterie) eingeschränkter Speicherplatz geringe Kommunikationsbandbreite geringe Rechenleistung Routing Tree Link Connectivity Base Station Quelle: http://tinyos.millennium.berkeley.edu 350

CPU: 4MHz, 8Bit, 512 Byte Ram Flash-Speicher: 128 kbyte Funkmodul: 2,4 GHz, 250 kbps Diverse Sensormodule: z.b. Digital/Analog, Licht, Feuchtigkeit, Druck Hardware Analog Sensor Signal Sensor A/D "Raw" Sensor Data Processor (DSP, FPGA, μp) Processed Sensor Data Radio Sensor part Computational Part Communication & Collaboration Part 351

Stromverbrauch Power (mw) 352

TinyOS TinyOS ist kein wirkliches Betriebssystem im traditionellen Sinn, eher ein anwendungsspezifisches Betriebssystem keine Trennung der Anwendung vom OS Bei Änderung der Anwendung muss komplettes Betriebssystem neu geladen werden. kein Kernel, keine Prozesse, keine Speicherverwaltung Es existiert nur ein Stack (single shared stack) Ereignisbasiertes Ausführungsmodell Nebenläufigkeitskonzept: Aufgaben können in unterschiedlichen Kontext ausgeführt werden: Vordergrund: Unterbrechungsereignisse Hintergrund: Tasks Prozesse können durch Ereignisse, nicht jedoch durch andere Prozesse unterbrochen werden. Scheduling für Tasks: Fifo Implementierung erfolgt in NesC (Erweiterung von C) Statische Speicherallokation 353

TinyOS - Architektur application sensing application routing Routing Layer messaging Messaging Layer packet Radio Packet byte Radio byte photo Temp SW bit RFM clocks ADC i2c HW 354

Echtzeitbetriebssysteme QNX 355

Geschichte: Einführung 1980 entwickeln Gordon Bell und Dan Dodge ein eigenes Echtzeitbetriebssystem mit Mikrokernel. QNX orientiert sich nicht an Desktopsystemen und breitet sich sehr schnell auf dem Markt der eingebetteten Systeme aus. Ende der 90er wird der Kernel noch einmal komplett umgeschrieben, um den POSIX-Standard zu erfüllen. Ergebnis: QNX Neutrino. Besonderheiten von QNX stark skalierbar, extrem kleiner Kernel (bei Version 4.24 ca.11kb) Grundlegendes Konzept: Kommunikation erfolgt durch Nachrichten 356

QNX Architektur 357

Neutrino Microkernel Der Mikrokernel in QNX enthält nur die notwendigsten Elemente eines Betriebssystems: Umsetzung der wichtigsten POSIX Elemente POSIX Threads POSIX Signale POSIX Thread Synchronisation POSIX Scheduling POSIX Timer Funktionalität für Nachrichten Eine ausführliche Beschreibung findet sich unter http://www.qnx.com/developers/docs/momentics621_docs/neutrino/sys_arch/kernel.html 358

Prozessmanager Als wichtigster Prozess läuft in QNX der Prozessmanager. Die Aufgaben sind: Prozessmanagement: Erzeugen und Löschen von Prozessen Verwaltung von Prozesseigenschaften Speichermanagement: Bereitstellung von Speicherschutzmechanismen, von gemeinsamen Bibliotheken und POSIX Primitiven zu Shared Memory Pfadnamenmanagement Zur Kommunikation zwischen und zur Synchronisation von Prozessen bietet QNX Funktionalitäten zum Nachrichtenaustausch an. 359

Echtzeitbetriebssysteme VxWorks 360

Host-Target-Entwicklungssystem Eigene Entwicklungsumgebung Workbench mit Simulationsumgebung und integriertem Debugger basierend auf Eclipse Zielplattformen der Workbench 2.0: VxWorks, Linux Kernel 2.4/2.6 Auf der Targetshell wird auch ein Interpreter ausgeführt C-Code kann direkt in die Shell eingegeben werden Kernel kann angepasst werden, allerdings muss der Kernel dazu neu kompiliert werden Marktführer im Bereich der Echtzeitbetriebssysteme Eigenschaften 361

Architektur Applications Hardware independant software IO System VxWorks/POSIX libraries TCP/IP File System Wind Kernel Hardware dependant software SCSI driver BSP (Board Support Package) Network driver Hardware SCSI controller Serial controller Clock timer Ethernet Controller 362

Prozessmanagement Schedulingverfahren: Es werden nur die beiden Verfahren FIFO und RoundRobin angeboten. Ein Verfahren für periodische Prozesse ist nicht verfügbar. Prioritäten: Die Prioritäten reichen von 0 (höchste Priorität) bis 255. Uhrenauflösung: Die Uhrenauflösung kann auf eine maximale Rate von ca. 30 KHz (abhängig von Hardware) gesetzt werden. Prozessanzahl: Die Anzahl der Prozesse ist nicht beschränkt (aber natürlich abhängig vom Speicherplatz) API: VxWorks bietet zum Management von Prozessen eigene Funktionen, sowie POSIX-Funktionen an. 363

Interprozesskommunikation und Speichermanagement Zur Interprozesskommunikation werden folgende Konzepte unterstützt: Semaphor Mutex (mit Prioritätsvererbung) Nachrichtenwartschlangen Signale Seit Version 6.0 wird zudem Speichermanagement angeboten: Der Entwickler kann Benutzerprozesse mit eigenem Speicherraum entwickeln. Bisher: nur Threads im Kernel möglich. 364

Echtzeitbetriebssysteme PikeOS 365

PikeOS: Betriebssystem mit Paravirtualisierung Idee: Virtualisierung der Hardware jede Partition (Personality) verhält sich als hätte sie eine eigene CPU zur Verfügung Mehrere Betriebssysteme können auf der gleichen CPU nebenläufig ausgeführt werden. Personality 1 (z.b. Linux) Die Speicherbereiche, sowie CPU-Zeiten der einzelnen Partitionen werden statisch während der Implementierung festgelegt. Durch die Partitionierung ergeben sich diverse Vorteile: Bei einer Zertifizierung muss nur der sicherheitskritische Teil des Gesamtsystems zertifiziert werden. Reduzierung der Steuergeräte durch Zusammenführung der Funktionalitäten mehrerer Steuergeräte Echtzeitkomponenten können einfacher von nicht-kritischen Komponenten getrennt werden Nachweis der Fristeneinhaltung wird einfacher... Kommunikationsschnittstellen PikeOS Hardware Architektur Personality n (z.b. VxWorks) 366

Echtzeitbetriebssysteme Linux Kernel 2.6 367

Bestandsaufnahme Für die Verwendung von Linux Kernel 2.6 in n spricht: die Existenz eines echtzeitfähigen Schedulingverfahrens (prioritätenbasiertes Scheduling mit FIFO oder RoundRobin bei Prozessen gleicher Priorität) die auf 1 ms herabgesetzte Zeitauflösung der Uhr (von 10ms in Kernel 2.4) Gegen die Verwendung spricht: die Ununterbrechbarkeit des Kernels. 368

Vergleich Schedulerlaufzeiten Kernel 2.4/2.6 Quelle: A. Heursch 369

Unterbrechbarkeit des Kernels Im Kernel ist der Preemptible Kernel Patch als Konfigurationsoption enthalten Erlaubt die Unterbrechung des Kernels. Problem: Existenz einer Reihe von kritischen Bereichen, die zu langen Verzögerungszeiten führen. Low Latency Patches helfen bei der Optimierung, aber harte Echtzeitanforderungen können nicht erfüllt werden. Weitere Ansätze: z.b. Verwendung von binären Semaphoren (Mutex) anstelle von generellen Unterbrechungssperren, Verhinderung von Prioritätsinversion durch geeignete Patches, siehe Paper von A. Heursch 370

Linux unterstützt Virtual Memory Speichermanagement Die Verwendung von Virtual Memory führt zu zufälligen und nicht vorhersagbaren Verzögerung, falls sich eine benötigte Seite nicht im Hauptspeicher befindet. Die Verwendung von Virtual Memory in Echtzeitanwendungen ist nicht sinnvoll. Vorgehen: Zur Vermeidung bietet Linux die Funktionen mlock() und mlockall() zum Pinning an. Pinning bezeichnet die Verhinderung des Auslagerns eines bestimmten Speicherbereichs oder des kompletten Speichers eines Prozesses. 371

Uhrenauflösung Die in Linux Kernel 2.6 vorgesehene Uhrenauflösung von 1ms ist häufig nicht ausreichend. Problemlösung: Verwendung des High Resolution Timer Patch (hrtimers) Durch Verwendung des Patches kann die Auflösung verbessert werden. Der Patch erlaubt z.b. die Erzeugung einer Unterbrechung in 3,5 Mikrosekunden von jetzt an. Einschränkung: Zeitliche Angabe muss schon vorab bekannt sein keine Zeitmessung möglich Gründe für die hrtimers-lösung findet man unter: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux- 2.6.git;a=blob;f=Documentation/hrtimers.txt 372