Echtzeitanforderung und Linux



Ähnliche Dokumente
Benutzerverwaltung Business- & Company-Paket

Benutzerhandbuch - Elterliche Kontrolle

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

teischl.com Software Design & Services e.u. office@teischl.com

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Einleitung: Frontend Backend

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

Workshop: Eigenes Image ohne VMware-Programme erstellen

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Professionelle Seminare im Bereich MS-Office

3.14 Die Programmieroberfläche Programmierung

SJ OFFICE - Update 3.0

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

Updatehinweise für die Version forma 5.5.5

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

GeoPilot (Android) die App

Anleitung zur Nutzung des SharePort Utility

Statuten in leichter Sprache

FUTURE NETWORK REQUIREMENTS ENGINEERING

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Content Management System mit INTREXX 2002.

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

SharePoint Demonstration

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

Lehrer: Einschreibemethoden

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

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

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

Leichte-Sprache-Bilder

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

impact ordering Info Produktkonfigurator

Gruppenrichtlinien und Softwareverteilung

Projektmanagement in der Spieleentwicklung

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Anwenderleitfaden Citrix. Stand Februar 2008

Windows 8 Lizenzierung in Szenarien

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Leitfaden zur Moduleinschreibung

Zwischenablage (Bilder, Texte,...)

Quick Guide Mitglieder

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Zimmertypen. Zimmertypen anlegen

Erstellen von x-y-diagrammen in OpenOffice.calc

Kostenstellen verwalten. Tipps & Tricks

Die Richtlinien Stornobedingungen, Buchungsgarantie, Nächtigungsabgabe, Haustiere, Endreinigung

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Mediumwechsel - VR-NetWorld Software

Success! Bestellausgabe

Mediumwechsel - VR-NetWorld Software

Installation & Konfiguration AddOn AD-Password Changer

1. Allgemeines zum tevitel.wq-monitor Seite WQ-Monitor konfigurieren Seite 4

Zusatzmodul Lagerverwaltung

Tipps und Tricks zu Netop Vision und Vision Pro

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG

Microsoft Update Windows Update

Virtuelle Fotografie (CGI)

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Was meinen die Leute eigentlich mit: Grexit?

Data Mining: Einige Grundlagen aus der Stochastik

Kundenbefragung als Vehikel zur Optimierung des Customer Service Feedback des Kunden nutzen zur Verbesserung der eigenen Prozesse

Zeichen bei Zahlen entschlüsseln

Internet Explorer Version 6

Step by Step Webserver unter Windows Server von Christian Bartl

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Nicht über uns ohne uns

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Software-Validierung im Testsystem

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Kurzanleitung MAN E-Learning (WBT)

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Zulassung nach MID (Measurement Instruments Directive)

OSEK Deadline-Analyse

Die Invaliden-Versicherung ändert sich

Marketing-Leitfaden zum. Evoko Room Manager. Touch. Schedule. Meet.

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Was ist Sozial-Raum-Orientierung?

Primzahlen und RSA-Verschlüsselung

Datensicherung. Beschreibung der Datensicherung

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

Nr. 12-1/Dezember 2005-Januar A 12041

Welches Übersetzungsbüro passt zu mir?

Elektrische Logigsystem mit Rückführung

GSM Scanner Bedienungsanleitung. GSM - Scanner. Bedienungsanleitung. Seite 1 von 10

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Adressen der BA Leipzig

Das neue Reisekostenrecht 2014

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Was ist das Budget für Arbeit?

Transkript:

Echtzeitanforderung und Linux Slide 1 - http://www.pengutronix.de - 21.01.2007

Definition Harte Echtzeit I Was zeichnet ein Echtzeitsystem aus? Zeitverhalten ist Teil der System-Spezifikation! Bei Embedded-Systemen heißt das meist: Zeit für Reaktion auf Interrupt (Timer oder Extern) Wichtig: Echtzeit heißt nicht "schnell", sondern "rechtzeitig"! Slide 2 - http://www.pengutronix.de - 21.01.2007

Definition Harte Echtzeit II Deterministische Antwortzeit auf Ereignisse Häufige Anwendung: Zyklische Tasks mit vorgegebener Zykluszeit... aber warum sind "General Purpose" Betriebssysteme nicht echtzeitfähig? Slide 3 - http://www.pengutronix.de - 21.01.2007

Ursachen für Latenz bei Microcontroller Single Threaded Context: Gatterlaufzeit Interrupt-Sperre Instruktions-Latenz User Programm Slide 4 - http://www.pengutronix.de - 21.01.2007

Ursachen für Latenz bei Prozessor + OS Multi Threaded Context: Gatterlaufzeit Interrupt-Sperre Instruktions-Latenz ISR Latenz Preemption Delay Scheduler User Programm Slide 5 - http://www.pengutronix.de - 21.01.2007

Warum ist die Latenz nicht deterministisch? Standard-Linux 2.4 und 2.6 (mit Ausnahmen) sind nicht preemptiv! Interrupt kommt "irgendwann" Wenn System gerade im Kernel läuft (System Call), wird der gerade laufende Context abgearbeitet, bis er abgeschlossen ist. Das kann, je nach Systemzustand, lange dauern. Slide 6 - http://www.pengutronix.de - 21.01.2007

Warum dann nicht Controller? Moderne Embedded Systeme haben oft nicht nur Echtzeitanforderungen! Kommunikation, Feldbusse, Netzwerk-Protokolle, Visualisierung, Web-Schnittstelle usw. Slide 7 - http://www.pengutronix.de - 21.01.2007

Echtzeit findet auf vielen Ebenen statt Rechenleistungs-Zuteilung (Scheduling): Weiche Echtzeit Harte Echtzeit Resourcen-Verwaltung Speicher Locks Kommunikation zwischen Systemen Slide 8 - http://www.pengutronix.de - 21.01.2007

Vergabe der Rechenleistung an Prozesse UNIX-artige Betriebssysteme verwenden einen allgemeinen Ansatz dafür: Fair Queueing Faire Verteilung der Rechenleistung auf alle Prozesse. Kein Prozess verhungert Sanfte Vergabe von Prioritäten Prozesse mit hoher Priorität erhalten zwar insgesamt mehr Rechenleistung zugeteilt, aber sie nehmen diese anderen aktiven Prozessen nicht weg. D.h. auch ein hoch priorisierter Prozess muss ggf. warten, bis alle anderen abgearbeitet sind Slide 9 - http://www.pengutronix.de - 21.01.2007

Vergabe der Rechenleistung an Prozesse Reine Echtzeitbetriebssysteme verwenden einen anderen Ansatz: Priority Queueing Vergabe der Rechenleistung ausschließlich über die Priorität Hochpriore Prozesse laufen immer auf Kosten niederpriorer Prozesse Niederpriore Prozesse erhalten im schlechtesten Fall niemals Rechenleistung Hochpriore Prozesse laufen immer, wenn sie im Zustand Bereit sind Slide 10 - http://www.pengutronix.de - 21.01.2007

Vergabe der Rechenleistung an Prozesse Wie wird Linux 2.6.x diesen unterschiedlichen Anforderungen gerecht? Es verwendet zwei unterschiedliche Scheduler-Verhalten: Standard-Verhalten für Fair-Queueing Echtzeit-Verhalten für Priority-Queueing Alle Prozesse im System können einem der beiden Scheduler-Verhalten zugeordnet werden Allen Prozessen im System kann eine Priorität zugeordnet werden Slide 11 - http://www.pengutronix.de - 21.01.2007

Beispiel: Kamera steuert Bandlauf Aufgabe: Zu bearbeitendes Gut kommt als Bandware in die Verarbeitungs-Maschine Das Gut muss auf den Laufrollen auf einer bestimmten Position gehalten werden, um die nachfolgende Bearbeitung zu ermöglichen Umsetzung: Eine Zeilenkamera nimmt die aktuelle Position des Guts auf der Rolle auf Ein Regelungsprozess steuert die Lage der Laufrolle, um das Gut auf Position zu halten Voraussetzung: Für die Regelungsstrecke muss eine äquidistante Abtastrate sichergestellt werden Slide 12 - http://www.pengutronix.de - 21.01.2007

Beispiel: Kamera steuert Bandlauf Ablauf: Regelungsprozess nimmt eine Probe der Kamera Berechnet die neuen Vorgaben für die Stellmotoren der Laufrollen Geht in den Zustand Warten bis zum Beginn der nächsten Abtastung Problem: Einstellung der Periodendauer bzw. Wartezeit bis zum Beginn der nächsten Abtastung: Standard Kernel 2.4/2.6 verwendet nur Timer-Ticks und deren Raster (beispielsweise 10 ms oder 8 ms) Sicherstellen, daß zu Beginn der neuen Abtastung der Regelungsprozess Rechenleistung zugeteilt bekommt: Standard Kernel 2.4 kann das nicht garantieren! Slide 13 - http://www.pengutronix.de - 21.01.2007

Beispiel: Kamera steuert Bandlauf Lösungsansatz: Verwendung eines Standard Kernel 2.6 Zuordnen des Regelungsprozesses an den Echtzeit-Scheduler Verwendung einer höheren Timer-Tick-Rate In diesem Beispiel reichen die verbesserten Soft Realtime Eigenschaften des 2.6er Kernels gegenüber 2.4 aus. Slide 14 - http://www.pengutronix.de - 21.01.2007

Harte Echtzeit Harte Echtzeit stellt weitere Anforderungen an das System, welche durch reine Prioritätssteuerung und gesonderte Prozess-Scheduler nicht zu erreichen sind Die Anforderung, eine laufende Aktivität zugunsten einer höher priorisierten Aktivität zu unterbrechen, kann zu jedem beliebigen Zeitpunkt eintreffen Die gerade laufende Aktivität kann ein Userspace-Prozess, ein Betriebssystemaufruf eines Userspace-Prozesses, aber auch ein Kernel- Thread oder eine Interrupt-Routine sein Voraussetzung für harte Echtzeit ist, dass alle genannten Aktivitäten unterbrochen und durch eine höher priorisierte Aktivität ersetzt werden können (Preemption) Slide 15 - http://www.pengutronix.de - 21.01.2007

RTAI Standard-Linux 2.4 und 2.6 (mit Ausnahmen) sind nicht preemptiv! Interrupt kommt "irgendwann" Wenn System gerade im Kernel läuft (System Call), wird der gerade laufende Context abgearbeitet, bis er abgeschlossen ist. Das kann, je nach Systemzustand, lange dauern. Slide 16 - http://www.pengutronix.de - 21.01.2007

RTAI Systemaufbau Userspace Programme Linux 2.4 RTAI-Programme im Kernel RTAI Infrastruktur für Threads & Kommunikation RTAI HAL Schicht (fängt alle Interrupts ab) Hardware Slide 17 - http://www.pengutronix.de - 21.01.2007

Xenomai Dual Kernel Ansatz Echtzeit-Programme binden gegen Xenomai Echtzeit-Programme können auch den Linux-Kernel verwenden, verlieren dabei aber Performance Slide 18 - http://www.pengutronix.de - 21.01.2007

Xenomai Systemaufbau Userspace Programme Skin-Layer XENOMAI-Kern Nucleus Linux HAL-Layer Adeos nanokernel Hardware Slide 19 - http://www.pengutronix.de - 21.01.2007

Mainline HRT: Preempt RT im Kernel Seit ca. 2002 gibt es konstante Aktivitäten, den Linux Kernel selbst hart echtzeitfähig zu machen, und zwar ohne Dual Kernel Ansatz! Änderungen am Kernel (Mainline ab 2.6.17 ff.): Generic Interrupt Layer Behandlung von Interrupts über alle Architekturen hinweg Interrupt-Service-Routinen unterliegen dem Scheduler Abstrakte, architekturunabhängige Timer, Separierte Timeouts Neues Framework für hochauflösende Timer mit geringem Overhead Priority Inherritance Mutexe (PI-Mutexe) Ersetzen von Spinlocks durch PI-Mutexe Vollständig Preemptiv Slide 20 - http://www.pengutronix.de - 21.01.2007

Entwickeln mit RT-Preempt Echtzeit wird als Spezialfall angesehen: Entwicklung startet wie gewohnt im Userspace "Einschalten" der Echtzeiteigenschaften, wenn nötig Es soll möglichst keinen Unterschied machen, ob man für Echtzeit oder Nicht-Echtzeit programmiert Vereinfachtes Debugging mit vorhandenen Tools Einfache Portierung bestehender Software Slide 21 - http://www.pengutronix.de - 21.01.2007

Beispiel: Servo-Steuerung mittels PWM Aufgabe: Über einen in Software kontrollieren GPIO wird ein PWM-Signal erzeugt, welches darüber die Position eines Servo-Motors vorgibt Der Motor muss die Position stabil halten, darf nicht jittern Umsetzung: Eine Prozess kontrolliert den GPIO mittels einer Zeitschleife Die meisten Servo-Motoren verlangen eine bestimmte Periodendauer, daran muss sich das Programm anpassen lassen Voraussetzung: Beliebige Wartezeiten müssen realisierbar sein Slide 22 - http://www.pengutronix.de - 21.01.2007

Beispiel: Servo-Steuerung mittels PWM Prozess bekommt die Vorgabe für das Puls-Pausenverhältnis Die Periodendauer wird in 100 Teile aufgeteilt, der Prozess muss 100 mal pro Periode geweckt werden Ist das Puls-Pausenverhältnis erreicht, wird der Pegel am GPIO geändert Problem: Der Kernel muss die mitunter kurzen Wartezeiten umsetzen können Der Kernel muss innerhalb einer Toleranz sicherstellen, dass der Prozess nach dieser Wartezeit auch tatsächlich Rechenleistung erhält Slide 23 - http://www.pengutronix.de - 21.01.2007

Beispiel: Servo-Steuerung mittels PWM Lösungsansatz: Verwendung eines RT-Preempt-gepatchten Kernel 2.6 Verwendung der hochauflösenden Timer Zuordnen des Steuerungsprozesses an den Echtzeit-Scheduler Slide 24 - http://www.pengutronix.de - 21.01.2007

Resourcenverwaltung unter Echtzeit Echtzeitapplikationen sind praktisch nie homogene Applikationen In der Regel hat nur ein kleiner Teil Echtzeitanforderungen Der Rest der Applikation ist zeitunkritisch Durch diesen Aufbau ergeben sich Berührungspunkte beider Teile Gemeinsame Nutzung von Resourcen wie Speicher zum Zwecke der Kommunikation bzw. Datenaustausch Gemeinsam genutzte Resourcen müssen vor konkurrierenden Zugriffen geschützt werden! Dieser Schutz darf aber die Prioritätssteuerung nicht sabotieren Slide 25 - http://www.pengutronix.de - 21.01.2007

Beispiel: GPIO-Verwaltung Aufgabe: In einem Register ist die Kontrolle über mehrere GPIO realisiert Die meisten GPIO darin unterliegen langsamen Kontrollen Einige GPIO werden aber von einem Echtzeitprozess kontrolliert Umsetzung: Eine Mutex schützt den Zugriff auf das gemeinsame Register (beispielsweise in einer gemeinsam benutzten Bibliotheksfunktion) Alle Prozesse verwenden die Bibliotheksfunktion, um ihnen zugeordnete GPIO zu manipulieren Die Mutex verhindert das Chaos beim gemeinsamen Zugriff Slide 26 - http://www.pengutronix.de - 21.01.2007

Beispiel: GPIO-Verwaltung Problem: Besitzt gerade ein niederpriorer Prozess die Mutex, blockiert er einen hochprioren Prozess, der ebenfalls zugreifen möchte Wird nun der niederpriore Prozess seinerseits unterbrochen, besteht diese Blockade für eine beliebige Zeit Lösungsansatz: Verwendung der PI-Mutexe im Kernel 2.6 Slide 27 - http://www.pengutronix.de - 21.01.2007

Echtzeit im Userspace Wie die vorangegangenen Beispiele andeuten, ist Echtzeit nicht nur innerhalb des Kernels möglich, sondern auch im Userspace Die umgesetzten Maßnahmen im Kernel sind für weite Teile des Kernels selbst transparent und vollständig transparent für den Userspace POSIX enthält bereits seit langer Zeit die dafür notwendigen Spezifikationen und APIs Mit den aktuellen Maßnahmen im Linux 2.6 Kernel wurden diese nur umgesetzt Slide 28 - http://www.pengutronix.de - 21.01.2007

Grenzen von Software-HRT Optimale Voraussetzung: Linux mit Echtzeit-Erweiterung, unterstützt durch Hardware: FPGAs Microcontroller DSPs Für Datenprozessing: Framework-Basierte Abstraktionssysteme, z.b. freesp Slide 29 - http://www.pengutronix.de - 21.01.2007

Zusammenfassung Der Standard-Linux-2.6-Kernel erfüllt bereits einen Teil der Standard- Echtzeitanforderungen (Soft-Realtime) Darüber hinausgehende Forderungen können vom RT-Preempt-Patch erfüllt werden (Hard-Realtime) Echtzeit ist nicht auf den Kernel beschränkt Echtzeit ist Architektur-Unabhängig Über die normale POSIX-API kann jeder Prozess diese Echtzeiteigenschaften verwenden Entwicklung von Echtzeitapplikationen erfordert keine besonderen Werkzeuge mehr Slide 30 - http://www.pengutronix.de - 21.01.2007